我想在浏览器中创建警告窗口。
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
...或者,如评论中所述,您可以使用 Chrome
、IE
等
关于python - 使用 python selenium 在浏览器中创建警报窗口,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42946682/