带有两个连续警报的Selenium Webdriver

时间:2018-11-05 17:23:05

标签: python selenium 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运行测试。)

关于如何解决此问题的任何建议?

1 个答案:

答案 0 :(得分:0)

如果警报立即出现,一个接一个,如下所示:

alert('foo');
alert('bar');

...并且您可以控制服务器端 JavaScript 代码,您应该将它们分开,例如这样:

alert('foo');
setTimeout(function(){alert('bar');}, 500);

这样 WebDriver 将能够区分这些警告框。