selenium的弹出框处理

一、Alert 类型弹框
selenium的弹出框处理_第1张图片
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的弹出框处理_第2张图片
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 类型弹框
selenium的弹出框处理_第3张图片
当管理员在网站上选择给某个账号延期时,就可能会弹出 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}

你可能感兴趣的:(selenium)