我在 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/