一、Alert 类型弹框
selenium提供如下方法进行操作:
driver.switch_to.alert.accept()
注意:如果我们不去点击它,页面的其它元素是不能操作的。 {: .notice–info}
如果程序要获取弹出对话框中的信息内容, 可以通过 如下代码
driver.switch_to.alert.text
示例代码如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get(‘http://cdn1.python3.vip/files/selenium/test4.html’)
·# — alert —
driver.find_element_by_id(‘b1’).click()
·# 打印 弹出框 提示信息
print(driver.switch_to.alert.text)
·# 点击 OK 按钮
driver.switch_to.alert.accept()
-=======================================================================-
二、Confirm 类型弹框
selenium提供如下方法进行操作:
如果我们想点击 OK 按钮, 还是用刚才的 accept方法,如下
driver.switch_to.alert.accept()
如果我们想点击 Cancel 按钮, 可以用 dismiss方法,如下
driver.switch_to.alert.dismiss()
示例代码如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get(‘http://cdn1.python3.vip/files/selenium/test4.html’)
·# — confirm —
driver.find_element_by_id(‘b2’).click()
·# 打印 弹出框 提示信息
print(driver.switch_to.alert.text)
·# 点击 OK 按钮
driver.switch_to.alert.accept()
driver.find_element_by_id(‘b2’).click()
·# 点击 取消 按钮
driver.switch_to.alert.dismiss()
-=======================================================================-
三、Prompt 类型弹框
当管理员在网站上选择给某个账号延期时,就可能会弹出 Prompt 弹出框, 要求输入延期多长时间。
可以调用如下方法:
driver.switch_to.alert.send_keys()
示例代码如下:
from selenium import webdriver
driver = webdriver.Chrome()
driver.implicitly_wait(5)
driver.get(‘http://cdn1.python3.vip/files/selenium/test4.html’)
·# — prompt —
driver.find_element_by_id(‘b3’).click()
·# 获取 alert 对象
alert = driver.switch_to.alert
·# 打印 弹出框 提示信息
print(alert.text)
·# 输入信息,并且点击 OK 按钮 提交
alert.send_keys(‘web自动化 - selenium’)
alert.accept()
·# 点击 Cancel 按钮 取消
driver.find_element_by_id(‘b3’).click()
alert = driver.switch_to.alert
alert.dismiss()
-========================================================================-
注意 : 有些弹窗并非浏览器的alert 窗口,而是html元素,这种对话框,只需要通过之前介绍的选择器选中并进行相应的操作就可以了。 {: .notice–info}