Selenium系列教程(六)窗口切换 alert、iframe、windows
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Selenium系列教程(六)窗口切换 alert、iframe、windows,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含4105字,纯文字阅读大概需要6分钟。
内容图文
![Selenium系列教程(六)窗口切换 alert、iframe、windows](/upload/InfoBanner/zyjiaocheng/1203/a5c430210483431d8599fc69b0394756.jpg)
一、alert
javascript 有三种模式的消息框,分别是alert(),confirm()和prompt()
1、alert()--警告消息框
alert 弹框提供了一个参数用来显示文本参数,还提供了一个确认按钮让用户关闭该消息弹框。
2、confirm()--确认消息框
confirm 可向用户问一个“是-或-否”问题,并且用户可以选择单击“确定”按钮或者单击“取消”按钮。
3、prompt()--提示消息框
提示消息框提供了一个文本字段,用户可以在此字段输入一个答案来响应您的提示。
![技术分享图片](/img/jia.gif)
![技术分享图片](/img/jian.gif)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <input id="alert" type="button" onclick="alert(‘这是一个弹框‘)" value="alert" /> <input id="confirm" type="button" onclick="confirm(‘是否继续‘)" value="confirm" /> <input id="prompt" type="button" onclick="disp_prompt()" value="prompt" /> </body> <script> function disp_prompt() { var name=prompt("Please enter your name",""); if (name!=null && name!="") { document.write("Hello " + name + "!"); } } </script> </body> </html>
from selenium import webdriver from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() driver.get("http://localhost:63342/demo.html") driver.find_element_by_id("alert").click() # 等待 alert 出现 WebDriverWait(driver, 10).until(EC.alert_is_present) # 切换到 alert alert = driver.switch_to.alert # 获取alert 文本print(alert.text) # 点击 alert 确定alert.accept() # alert.dismiss() # 点击 alert 取消 driver.find_element_by_id("prompt").click() WebDriverWait(driver, 10).until(EC.alert_is_present) alert = driver.switch_to.alert # 往alert 文本框输入文本 alert.send_keys("test") alert.accept() driver.quit()
二、iframe
如果一个网页里面嵌套了另一个页面,如果要定位内嵌页面的元素,则需要使用 driver.switch_to.ifram() 切换到内嵌的 iframe 操作元素,操作完成后重新回到主页面需要使用 driver.switch_to.default_content()
![技术分享图片](/img/jia.gif)
![技术分享图片](/img/jian.gif)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <a href="https://www.jd.com">京东</a> </body> </html>
![技术分享图片](/img/jia.gif)
![技术分享图片](/img/jian.gif)
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <title>Title</title> </head> <body> <a href="https://www.baidu.com">百度</a> <iframe id="test" src="test.html" width="200" height="200"> </iframe> </body> </html>
示例代码:
from time import sleep from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC driver = webdriver.Chrome() driver.get(‘http://localhost:63342/demo.html‘) # iframe 切换方式一: WebDriverWait(driver, 5, 0.5).until(EC.visibility_of_element_located((By.ID, "test"))) driver.switch_to.frame(driver.find_element(By.ID, "test")) driver.find_element(By.LINK_TEXT, "京东").click() sleep(2) driver.back() sleep(2) # 回到默认页面driver.switch_to.default_content() driver.find_element_by_link_text("百度").click() driver.back() sleep(2) # 回到父级页面 # driver.switch_to.parent_frame()# iframe 切换方式二: WebDriverWait(driver, 5, 0.5).until(EC.frame_to_be_available_and_switch_to_it((By.ID, "test"))) driver.find_element(By.LINK_TEXT, "京东").click() sleep(2) driver.quit()
三、window
from selenium import webdriver from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from time import sleep driver = webdriver.Chrome() driver.get(‘https://www.baidu.com/‘) driver.maximize_window() # 1. 获取当前窗口句柄和总数 handles = driver.window_handles print(handles) # 2. 打开新窗口并等待新窗口打开,new_window_is_opened 新窗口打开后窗口句柄会 +1;注意:new_window_is_opened(handles) 传入的 handlers 一定要是在click操作之前获取的handlers,否则会出错 driver.find_element_by_link_text("新闻").click() WebDriverWait(driver, 10).until(EC.new_window_is_opened(handles)) # 3. 再次获取窗口句柄,新打开的窗口句柄在最后一个 handles = driver.window_handles # 4. 切换窗口句柄到最新打开的窗口 driver.switch_to.window(handles[-1]) # 5. 执行操作 driver.find_element_by_link_text("贴吧").click() sleep(3) # 6. 切换到原来的窗口继续执行操作driver.switch_to.window(handles[0]) driver.find_element_by_link_text("地图").click() sleep(3) driver.quit()
原文:https://www.cnblogs.com/sharef/p/13661835.html
内容总结
以上是互联网集市为您收集整理的Selenium系列教程(六)窗口切换 alert、iframe、windows全部内容,希望文章能够帮你解决Selenium系列教程(六)窗口切换 alert、iframe、windows所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。