js关闭iframe窗口_[Selenium]24.处理弹窗新式的模态窗口
生活随笔
收集整理的這篇文章主要介紹了
js关闭iframe窗口_[Selenium]24.处理弹窗新式的模态窗口
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
場景
頁面上彈出的對話框是自動化測試經常會遇到的一個問題。很多情況下這個彈出的對話框是一個iframe,處理起來有點麻煩,需要進行switch_to操作. 請參考文章
測試曾哥:[Selenium]23.對話框的處理?zhuanlan.zhihu.com但現在很多前端框架的對話框都是div形式的,這就讓我們的處理變得十分簡單了。
處理對話框一般會做下面的一些事情
- 打開對話框
- 關閉對話框
- 操作對話框中的元素
代碼
modal.html
<html><head><meta http-equiv="content-type" content="text/html;charset=utf-8" /><title>modal</title> <script type="text/javascript" async="" src="http://ajax.googleapis.com/ajax/libs/jquery/1.9.1/jquery.min.js"></script><link href="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/css/bootstrap-combined.min.css" rel="stylesheet" /> <script type="text/javascript">$(document).ready(function(){$('#click').click(function(){$(this).parent().find('p').text('try watir-webdriver right now!');});});</script></head><body><h3>modal</h3><div class="row-fluid"><div class="span6"> <!-- Button to trigger modal --><a href="#myModal" role="button" class="btn btn-primary" data-toggle="modal" id="show_modal">Click</a><!-- Modal --><div id="myModal" class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true"><div class="modal-header"><button type="button" class="close" data-dismiss="modal" aria-hidden="true">×</button><h3 id="myModalLabel">Modal header</h3></div><div class="modal-body"><p>watir-webdriver is better than slenium-webdriver</p><a href="#" id="click">click me</a></div><div class="modal-footer"><button class="btn" data-dismiss="modal" aria-hidden="true">Close</button><button class="btn btn-primary">Save changes</button></div></div></div> </div> </body><script src="http://netdna.bootstrapcdn.com/twitter-bootstrap/2.3.2/js/bootstrap.min.js"></script></html>modal.py
# -*- coding: utf-8 -*- from selenium import webdriver from time import sleep import os import selenium.webdriver.support.ui as ui if 'HTTP_PROXY'in os.environ: del os.environ['HTTP_PROXY']dr = webdriver.Chrome() file_path = 'file:///' + os.path.abspath('modal.html')dr.get(file_path)# 打開對話框 dr.find_element_by_id('show_modal').click()wait = ui.WebDriverWait(dr, 10) wait.until(lambda dr: dr.find_element_by_id('myModal').is_displayed())# 點擊對話框中的鏈接 # 由于對話框中的元素被蒙板所遮擋,直接點擊會報 Element is not clickable的錯誤 # 所以使用js來模擬click # 在watir-webdriver中只需要fire_event(:click)就可以了 link = dr.find_element_by_id('myModal').find_element_by_id('click') dr.execute_script('$(arguments[0]).click()', link) sleep(2)# 關閉對話框 buttons = dr.find_element_by_class_name('modal-footer').find_elements_by_tag_name('button') buttons[0].click()dr.quit()總結
以上是生活随笔為你收集整理的js关闭iframe窗口_[Selenium]24.处理弹窗新式的模态窗口的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: wx轮播图接口学习用json格式_零基础
- 下一篇: 油管主购买现实版GTA5顶层公寓:奢侈豪