Selenium 中的等待命令是什么?
在执行 selenium 自动化测试时,我们使用等待来使我们的测试可靠且健壮。最常见的是,在运行自动化测试时,如果在加载 Webdriver 想要交互的特定元素时出现延迟,我们会看到“ElementNotVisibleException”。
等待和超时可帮助用户在执行某些操作或在应用程序中的不同页面之间导航后在页面上加载元素时克服各种问题。
Selenium 4 中的隐式等待
让我们看看升级到 Selenium 4 后如何定义隐式等待。
在 Selenium 4 之前 -
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
现在将其视为已弃用
@Deprecated
WebDriver.Timeouts implicitlyWait(long time, TimeUnit unit);
在Selenium 4 之后 -
driver.manage().timeouts().implicitlyWait(Duration.ofSeconds(10));
与scriptTimeout和pageLoadTimeout等其他等待相同:-
driver.manage().timeouts().scriptTimeout(Duration.ofMinutes(2));
driver.manage().timeouts().pageLoadTimeout(Duration.ofSeconds(10));
Selenium 4 中的显式等待
WebDriverWait 现在也期待“持续时间”而不是长时间的超时,以秒和毫秒为单位。文章来源:https://www.toymoban.com/news/detail-438380.html
该方法现在在 selenium 中已弃用文章来源地址https://www.toymoban.com/news/detail-438380.html
public WebDriverWait(@NotNull org.openqa.selenium.WebDriver driver, long timeoutInSeconds)
在 Selenium 4 之前 -
//Old syntax
WebDriverWait wait = new WebDriverWait(driver,10);
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".classlocator")));
在 Selenium 4 之后 -
//Selenium 4 syntax
WebDriverWait wait = new WebDriverWait(driver,Duration.ofSeconds(10));
wait.until(ExpectedConditions.visibilityOfElementLocated(By.cssSelector(".classlocator")));
Selenium 4 中的 FluentWait
在 Selenium 4 之前 -
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(30, TimeUnit.SECONDS)
.pollingEvery(5, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);
在 Selenium 4 之后 -
Wait<WebDriver> fluentWait = new FluentWait<WebDriver>(driver)
.withTimeout(Duration.ofSeconds(30))
.pollingEvery(Duration.ofSeconds(5))
.ignoring(NoSuchElementException.class);
到了这里,关于Java Selenium中的等待和超时的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!