乐趣区

关于selenium:Selenium-alert-弹窗处理

页面弹窗有 3 种类型:

  1. alert(正告信息)
  2. confirm(确认信息)
  3. prompt(提醒输出)

对于页面呈现的 alert 弹窗,Selenium 提供如下办法:

序号 办法 / 属性 形容
1 accept() 承受
2 dismiss() 勾销
3 text 获取显示的文本
4 send_keys() 输出内容

对应 解决形式

  1. alert(正告信息):WebDriver.switch_to.alert.accept()
  2. confirm(确认信息):

    1. WebDriver.switch_to.alert.accept()
    2. WebDriver.switch_to.alert.dismiss()
  3. prompt(提醒输出):WebDriver.switch_to.alert.send_keys()

alert(正告信息)弹出框

alert(正告信息)弹出框,目标是提醒告诉信息,只须要用户看完点击确认即可。

from selenium import webdriver
from time import sleep

driver = 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 Message
alert.accept()  # 承受
sleep(2)

driver.quit()  # 敞开浏览器

confirm(确认信息)弹出框

confirm(确认信息)弹出框,次要是让用户来确定是否要执行某个操作。比方,淘宝,京东等,删除订单是弹出此类弹出,让用户确定是否删除,防止用户误操作。

confirm(确认信息)弹出框提供两种抉择,“确认”或者“勾销”。只须要抉择其中一个即可:

确认:WebDriver.switch_to.alert.accept()

勾销:WebDriver.switch_to.alert.dismiss()

from selenium import webdriver
from time import sleep

driver = 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 Message
alert.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 webdriver
from time import sleep

driver = 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 Message
alert.send_keys("自动化测试")  # 输出内容
sleep(1)
alert.accept()  # 承受
sleep(2)

driver.quit()  # 敞开浏览器

留神:有些弹窗并非浏览器的 alert 窗口,而是 html 元素,对于这种对话框,只须要通过之前介绍的选择器选中,并进行相应的操作即可。

总结

退出移动版