日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

js关闭iframe窗口_[Selenium]24.处理弹窗新式的模态窗口

發布時間:2023/12/10 编程问答 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 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.处理弹窗新式的模态窗口的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。