我想在浏览器中创建警告窗口。
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
。
创建警报窗口的正确方法是什么?
答案 0 :(得分:2)
这似乎是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
...或者,如评论中所述,您可以使用Chrome
,IE
等