python - 使用 python selenium 在浏览器中创建警报窗口

标签 python selenium selenium-webdriver webdriver

我想在浏览器中创建警告窗口。

browser = webdriver.Firefox(
    executable_path=geckodriver_path,
    log_path=geckodriver_log_path
)
browser.get(url)

创建警报窗口我这样做:

browser.execute_script("alert('qwer');")

browser.execute_script("return alert('qwer');")

browser.execute_script("return (function(){alert('qwer'); return 0;})();")

在所有情况下都会显示警报窗口。但在所有情况下,我都有一个异常:selenium.common.exceptions.WebDriverException: Message: Failed to find value field

创建警报窗口的正确方法是什么?

最佳答案

这似乎是 geckodriver 问题。尽管生成了 "Failed to find value field" 异常,您仍然可以处理打开的警报,因此您可以应用以下解决方法:

from selenium.common.exceptions import WebDriverException

try:
    browser.execute_script("alert('qwer');")
except WebDriverException:
    pass
browser.switch_to.alert.text # output is "qwer"
browser.switch_to.alert.accept() # alert closed

...或者,如评论中所述,您可以使用 ChromeIE

关于python - 使用 python selenium 在浏览器中创建警报窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42946682/

相关文章:

Python Selenium - 尝试按类名查找元素时出错

python - 两个数值范围之间的重叠分数

java - Selenium 挂起实例化 FirefoxDriver

Python Selenium 屏幕抓取

ios - 通过 REST API 直接与手机通信,自动化移动设备应用程序

java - 尽管有 --no-sandbox 选项,Chromedriver 不会以 root 身份运行

python - 在 DRF 3 中的 ModelSerializer 上添加非模型字段

python - 如何在 Python 中停止 airodump-ng 子进程?

asp.net - 我们可以使用 IIS 而不是 Visual Studio 开发服务器运行 Selenium WebDriver 测试用例吗

java - HttpURLConnection-connect() 抛出 Java ConnectException