python - 带有两个连续警报的 Selenium webdriver
问题描述
我正在尝试使用此代码测试具有两个不同警报的网页:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
alert = driver.switch_to.alert
alert.accept()
WebDriverWait(driver, 3) \
.until(EC.alert_is_present(),
'Timed out waiting for error alert to appear.')
error_alert = driver.switch_to.alert
这适用于 Selenium 3.4.3,但在升级到 3.14.1 后,它会WebDriverWait
在线给出以下错误:
E selenium.common.exceptions.TimeoutException: Message: Timed out waiting for error alert to appear.
当我在这一行设置断点时,我用自己的两只眼睛清楚地看到了 Mozilla 中预期的警报。(我正在使用 geckdriver 运行测试。)
关于我可以做些什么来解决这个问题的任何建议?
解决方案
如果警报立即出现,一个接一个,如下所示:
alert('foo');
alert('bar');
...并且您可以控制服务器端 JavaScript 代码,您应该将它们分开,例如:
alert('foo');
setTimeout(function(){alert('bar');}, 500);
这样,WebDriver 将能够区分这些警报框。
推荐阅读
- diff - 如何在 Perforce/P4V 中使用 010 编辑器比较文件
- python - EC2 SSH 进入其他 SSH 并运行 bash 脚本
- google-chrome - 即使请求被缓存,Chrome 也会限制与域的同时连接
- php - laravel SQLSTATE [22007]:无效的日期时间格式:1366 不正确的十进制值:'buy_amt * 0.00097812555575316' 列 'price' 在第 1 行错误
- scala - 如何使用 spark scala 将数据帧转换为 RDD 并将其存储在 cassandra
- javascript - 在所有测试都以开玩笑的方式运行后,如何在 node.js 中关闭 pg-promise 连接?
- html - 如何按x轴拉伸表格单元格中的背景图像?
- python - 访问字典,用字典中的信息替换用户输入中的项目
- vba - 如何在一个模块中运行两个应用程序
- javascript - hyperHTML:更新列表