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

使用python selenium在浏览器中创建警报窗口,python,selenium,selenium-webdriver,webdriver,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');") 或 或 在所有情况下,都会显示警报窗口。但在所有情况下,我都有一个异常:selenium.common.exce

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

browser = webdriver.Firefox(
    executable_path=geckodriver_path,
    log_path=geckodriver_log_path
)
browser.get(url)
要创建警报窗口,请执行以下操作:

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

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


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

这似乎是
geckodriver
的问题。尽管生成了
“找不到值字段”
异常,但您仍然可以处理打开的警报,因此您可以应用以下解决方法:

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

…或者,如评论中所述,您可以使用
Chrome
IE

您可以尝试其他浏览器吗?例如Chromedriver。这似乎是一个与Firefox相关的问题。
browser.execute_script("return (function(){alert('qwer'); return 0;})();")
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