Selenium处理Alert弹窗

页面弹窗有 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 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元素,对于这种对话框,只需要通过之前介绍的选择器选中,并进行相应的操作即可。

总结

https://www.cnblogs.com/yoyoketang/p/6128648.html

  • 22
    点赞
  • 14
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 可以使用 `driver.switch_to.alert.accept()` 来点击网页 alert 上的 "确定" 按钮。 示例代码如下: ```python from selenium import webdriver driver = webdriver.Chrome() # 打开一个网页, 这个网页会出一个 alert driver.get("http://www.example.com/alert_test.html") # 等待出现 alert = driver.switch_to.alert # 点击确定按钮 alert.accept() # 关闭浏览器 driver.quit() ``` 如果要点击 "取消" 按钮, 可以使用 `driver.switch_to.alert.dismiss()`。 注意: 在执行这些操作之前, 需要等待 alert 出现, 否则会抛出 "No Alert Present" 异常。 ### 回答2: Python Selenium 可以使用 `webdriver` 中的 `switch_to.alert` 方法来处理网页上的 alert 。下面是一种常见的处理方法: 首先,使用 `driver.switch_to.alert` 方法来切换到 alert : ```python alert = driver.switch_to.alert ``` 然后,可以使用以下方法来点击确定按钮: ```python alert.accept() ``` 将上述两行代码组合起来,可以在遇到 alert 时点击确定按钮: ```python alert = driver.switch_to.alert alert.accept() ``` 完整的代码示例: ```python from selenium import webdriver # 创建一个浏览器实例 driver = webdriver.Chrome() # 打开网页 driver.get("http://www.example.com") try: # 切换到 alert alert = driver.switch_to.alert # 点击确定按钮 alert.accept() except: # 没有时的处理逻辑 print("No alert found.") # 关闭浏览器 driver.quit() ``` ### 回答3: 使用Python的Selenium库来处理网页主要有两种情况:alert和确认框(confirm box)。回答中我们将重点讨论如何处理alert。 首先,我们需要使用`switch_to.alert`方法来定位到alert。然后,可以使用`accept()`方法来点击确定按钮,或者使用`dismiss()`方法来点击取消按钮。 以下是一个示例代码,演示了如何使用Python和Selenium处理alert: ```python from selenium import webdriver from selenium.webdriver.common.alert import Alert # 创建一个WebDriver实例 driver = webdriver.Chrome() # 打开网页 driver.get("https://example.com") # 点击按钮,触发alert button = driver.find_element_by_id("button_id") button.click() # 切换到alert alert = Alert(driver) # 点击确定按钮 alert.accept() # 关闭浏览器 driver.quit() ``` 在上面的示例中,我们首先使用WebDriver实例打开了一个网页。然后,找到页面上的某个按钮,并点击它以触发alert。接着,我们使用`Alert`类定位到alert,并用`accept()`方法点击确定按钮。最后,我们可以关闭浏览器。 需要注意的是,以上代码仅适用于处理alert,并不能用于处理其他类型的,例如确认框(confirm box)或输入框(prompt)。如果遇到其他类型的,可能需要使用不同的方法来完成。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值