为什么显式等待在第一次轮询间隔后不抛出异常?

问题描述 投票:0回答:1

如果显式等待具有默认轮询时间,即 500 毫秒,那么如果条件不满足,为什么它不在第一个 500 毫秒后抛出异常?

显式等待中默认轮询时间的作用是什么?

selenium-webdriver webdriverwait automation-testing
1个回答
0
投票

我认为您在轮询时间和等待时间之间混淆/混淆了。

轮询时间: 是 selenium 尝试在 DOM 中定位元素的重复时间间隔

等待时间: 是它等待尝试定位元素的最长时间,之后它会抛出

timeout exception

在下面的代码中,selenium 在抛出

element
之前尝试定位
timeout exception
40 秒。在这 40 年代,它尝试每 2 秒定位/轮询一次。如果你不添加这一行
wait.pollingEvery(2, TimeUnit.SECONDS);
,那么默认情况下它会尝试每500ms(0.5s)进行一次定位/轮询

WebDriverWait wait = new WebDriverWait(driver, 40);
        wait.pollingEvery(2, TimeUnit.SECONDS);
        wait.until(ExpectedConditions.elementToBeClickable(element));

这是我的理解。希望这会有所帮助。

© www.soinside.com 2019 - 2024. All rights reserved.