python - 通过 webdriver 点击 javascript 弹出窗口

标签 python selenium webdriver web-scraping alert

我在 Python 中使用 Selenium webdriver 抓取网页

我正在处理的网页有一个表单。我可以填写表格,然后点击提交按钮。

它会生成一个弹出窗口(Javascript Alert)。我不确定,如何通过 webdriver 点击弹出窗口。

知道怎么做吗?

谢谢

最佳答案

Python Webdriver 脚本:

from selenium import webdriver

browser = webdriver.Firefox()
browser.get("http://sandbox.dev/alert.html")
alert = browser.switch_to_alert()
alert.accept()
browser.close()

网页(alert.html):

<html><body>
    <script>alert("hey");</script>
</body></html>

运行 webdriver 脚本将打开显示警报的 HTML 页面。 Webdriver 立即切换到警报并接受它。 Webdriver 然后关闭浏览器并结束。

如果您不确定是否会出现警报,那么您需要使用类似的方法来捕获错误。

from selenium import webdriver

browser = webdriver.Firefox()
browser.get("http://sandbox.dev/no-alert.html")

try:
    alert = browser.switch_to_alert()
    alert.accept()
except:
    print "no alert to accept"
browser.close()

如果需要查看alert的文本,可以通过访问alert对象的text属性来获取alert的文本:

from selenium import webdriver

browser = webdriver.Firefox()
browser.get("http://sandbox.dev/alert.html")

try:
    alert = browser.switch_to_alert()
    print alert.text
    alert.accept()
except:
    print "no alert to accept"
browser.close()

关于python - 通过 webdriver 点击 javascript 弹出窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8631500/

相关文章:

python - 如何用python保存使用selenium生成的日志

jquery - Python Selenium 单击按钮

java - Selenium Webdriver 在 DOM 中查找元素时出错

python - 属性错误 : 'module' object has no attribute 'python_implementation' running pip

Python 重载多个 getitems/index 请求

c# - 如何在C#中使用关键字 `var`和Class

javascript - 在特定字段selenium webdriver上添加随机值

python - 删除用户的权限(django)

python - 在字典中使用整数类型键的字符串格式在 Python 2 中返回 KeyError,适用于字符串类型键

testing - 使用 Selenium,xpath 找不到 'text' 元素