Ram*_*war 1 c# java selenium automation selenium-webdriver
创建驱动程序后,我将隐式等待时间设置为10秒。
当我希望使用显式等待时,是否必须将隐式等待设置为0?
这是一个示例:
WebDriver webDriver = new FirefoxDriver();
webDriver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
//Now I want to use Explicit wait
Run Code Online (Sandbox Code Playgroud)
我是否必须做webDriver.manage()。timeouts()。implicitlyWait(0,TimeUnit.SECONDS); 还是没有必要?
WebDriverWait wait = new WebDriverWait(webDriver, WAIT_FOR_TIMEOUT_SEC);
WebElement element = wait.until(ExpectedConditions.visibilityOfElementLocated(By.id(id)));
Run Code Online (Sandbox Code Playgroud)
不必将隐式等待时间重新声明为零。
原因:当您说要使用显式等待时,仅表示您的隐式等待时间不足以等待元素出现,因此您在特定操作后声明了显式等待。
何时应使用隐式等待:隐式等待是一种告诉硒执行每个动作后要等待特定时间段的方法。这有助于同步您执行的大多数操作。您提供的时间越长,测试执行就越慢。有关隐式等待的更多信息
何时使用显式等待:当特定操作花费时间执行或加载到DOM时,将使用显式等待。这不会告诉硒在每个动作之后都要等待特定的时间,而是告诉硒要等待一段时间才能仅执行特定的动作。有关显式等待的更多信息
Selenium网站的警告:请勿混合使用隐式和显式等待。这样做可能导致无法预测的等待时间。例如,将隐式等待设置为10s,将显式等待设置为15秒,则可能导致20秒后发生超时。
希望能帮助到你。
| 归档时间: |
|
| 查看次数: |
1909 次 |
| 最近记录: |