页面弹窗有 3 种类型:
- alert(正告信息)
- confirm(确认信息)
- prompt(提醒输出)
对于页面呈现的 alert 弹窗,Selenium 提供如下办法:
序号 | 办法/属性 | 形容 |
---|---|---|
1 | accept() | 承受 |
2 | dismiss() | 勾销 |
3 | text | 获取显示的文本 |
4 | send_keys() | 输出内容 |
对应解决形式:
- alert(正告信息):WebDriver.switch_to.alert.accept()
confirm(确认信息):
- WebDriver.switch_to.alert.accept()
- WebDriver.switch_to.alert.dismiss()
- prompt(提醒输出):WebDriver.switch_to.alert.send_keys()
alert(正告信息)弹出框
alert(正告信息)弹出框,目标是提醒告诉信息,只须要用户看完点击确认即可。
from selenium import webdriverfrom time import sleepdriver = webdriver.Chrome() # 关上浏览器driver.get("http://sahitest.com/demo/alertTest.htm") # 跳转至测试页面sleep(1)element = driver.find_element_by_name("b1") # 定位element.click() # 点击sleep(1)alert = driver.switch_to.alert # 切换到弹窗print(alert.text) # 打印弹窗显示的信息:Alert Messagealert.accept() # 承受sleep(2)driver.quit() # 敞开浏览器
confirm(确认信息)弹出框
confirm(确认信息)弹出框,次要是让用户来确定是否要执行某个操作。比方,淘宝,京东等,删除订单是弹出此类弹出,让用户确定是否删除,防止用户误操作。
confirm(确认信息)弹出框提供两种抉择,“确认” 或者 “勾销”。只须要抉择其中一个即可:
确认:WebDriver.switch_to.alert.accept()勾销:WebDriver.switch_to.alert.dismiss()
from selenium import webdriverfrom time import sleepdriver = webdriver.Chrome() # 关上浏览器driver.get("http://sahitest.com/demo/confirmTest.htm") # 跳转至测试页面sleep(1)element = driver.find_element_by_name("b1") # 定位# 1、承受element.click() # 点击sleep(1)alert = driver.switch_to.alert # 切换到弹窗print(alert.text) # 打印弹窗显示的信息:Alert Messagealert.accept() # 承受sleep(2)# 2、勾销element.click() # 点击sleep(1)alert = driver.switch_to.alert # 切换到弹窗print(alert.text) # 打印弹窗显示的信息:alert.dismiss()sleep(2)driver.quit() # 敞开浏览器
prompt(提醒输出)弹出框
prompt(提醒输出)弹出框,目标是须要用户先输出信息,再做提交。Selenium 提供输出信息的办法是:
WebDriver.switch_to.alert.send_keys()
from selenium import webdriverfrom time import sleepdriver = webdriver.Chrome() # 关上浏览器driver.get("http://sahitest.com/demo/promptTest.htm") # 跳转至测试页面sleep(1)element = driver.find_element_by_name("b1") # 定位# 1、承受element.click() # 点击sleep(1)alert = driver.switch_to.alert # 切换到弹窗print(alert.text) # 打印弹窗显示的信息:Alert Messagealert.send_keys("自动化测试") # 输出内容sleep(1)alert.accept() # 承受sleep(2)driver.quit() # 敞开浏览器
留神 : 有些弹窗并非浏览器的 alert 窗口,而是 html元素,对于这种对话框,只须要通过之前介绍的选择器选中,并进行相应的操作即可。