【Python爬虫】详解selenium从入门到实战

弹窗处理

JavaScript 有三种弹窗 alert(确认)、confirm(确认、取消)、prompt(文本框、确认、取消)。

处理方式:先定位(switch_to.alert自动获取当前弹窗),再使用 textacceptdismisssend_keys 等方法进行操作

方法 描述
text 获取弹窗中的文字
accept 接受(确认)弹窗内容
dismiss 解除(取消)弹窗
send_keys 发送文本至警告框

这里写一个简单的测试页面,其中包含三个按钮,分别对应三个弹窗。

<!DOCTYPE html>
<html lang="en">
​
<head>
</head>
​
<body>
    <button id="alert">alert</button>
    <button id="confirm">confirm</button>
    <button id="prompt">prompt</button>
​
    <script type="text/javascript">
        const dom1 = document.getElementById("alert")
        dom1.addEventListener('click', function(){
           alert("alert hello")
        })
​
                const dom2 = document.getElementById("confirm")
        dom2.addEventListener('click', function(){
            confirm("confirm hello")
        })
​
                const dom3 = document.getElementById("prompt")
        dom3.addEventListener('click', function(){
            prompt("prompt hello")
        })
    </script>
</body>
</html>

image.png

下面使用上面的方法进行测试。为了防止弹窗操作过快,每次操作弹窗,都使用 sleep 强制等待一段时间。

from selenium import webdriver
from pathlib import Path
from time import sleep
​
​
driver = webdriver.Firefox()
driver.get('file:///' + str(Path(Path.cwd(), '弹窗.html')))
​
sleep(2)
​
# 点击alert按钮
driver.find_element_by_xpath('//*[@id="alert"]').click()
sleep(1)
alert = driver.switch_to.alert
# 打印alert弹窗的文本
print(alert.text)
# 确认
alert.accept()
​
sleep(2)
​
# 点击confirm按钮
driver.find_element_by_xpath('//*[@id="confirm"]').click()
sleep(1)
confirm = driver.switch_to.alert
print(confirm.text)
# 取消
confirm.dismiss()
​
sleep(2)
​
# 点击confirm按钮
driver.find_element_by_xpath('//*[@id="prompt"]').click()
sleep(1)
prompt = driver.switch_to.alert
print(pr
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值