gpt4 book ai didi

java - FluentWait 不通过 elementToBeClickable() 方法等待

转载 作者:行者123 更新时间:2023-12-02 02:38:16 24 4
gpt4 key购买 nike

我使用以下代码来等待页面加载。

   Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(40, SECONDS)
.pollingEvery(10, SECONDS)
.ignoring(NoSuchElementException.class);

wait.until(ExpectedConditions.elementToBeClickable(driver.findElement(webelements.labelForInputFileField)));
log.info("Page loaded!");

它不起作用,我收到以下错误:

java.lang.NullPointerException at com.google.common.base.Preconditions.checkNotNull(Preconditions.java:787) at org.openqa.selenium.support.ui.FluentWait.(FluentWait.java:96) at org.openqa.selenium.support.ui.FluentWait.(FluentWait.java:87)

我也尝试使用 presenceOfElementLocated() 方法,但出现同样的错误。请求的页面已加载,我可以在浏览器中直观地看到它。

最佳答案

尝试下面的FluentWait代码:-

WebElement waitsss(WebDriver driver, By elementIdentifier){
Wait<WebDriver> wait =
new FluentWait<WebDriver>(driver).withTimeout(60, TimeUnit.SECONDS)
.pollingEvery(1, TimeUnit.SECONDS)
.ignoring(NoSuchElementException.class);

return wait.until(new Function<WebDriver, WebElement>()
{
public WebElement apply(WebDriver driver) {
return driver.findElement(elementIdentifier);
}
});
}

如果还是不行。检查你的 XPath。可能是您的 XPATH 无效,因此 FluentWait 抛出期望

另一件事是,FluentWait 和 Explicit wait 是两种不同类型的等待。你不能与其他人混合

对于显式等待,请使用以下代码:

WebDriverWait wait = new WebDriverWait(ad, 100);
wait.until(ExpectedConditions.elementToBeClickable(By.id("gst")).sendKeys(username);

请参阅以下内容:-

http://toolsqa.com/selenium-webdriver/implicit-explicit-n-fluent-wait/

或使用JavascriptExecutor

WebElement Searchelement=driver.findElement("Your locator");
JavascriptExecutor executor = (JavascriptExecutor)driver;
executor.executeScript("arguments[0].click();", Searchelement);

希望对你有帮助:)

关于java - FluentWait 不通过 elementToBeClickable() 方法等待,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45918541/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com