经过一段时间搜索我遇到的问题后,我找不到任何解决方案。所以我在这里。
一些背景,我正在尝试自动化注册、确认和加入某个平台的“直播课程”。
为此,您每 10 分钟有一个 5 分钟的窗口,您可以在其中注册,然后确认,然后等待 X 时间,然后加入直播课程。
但这只是第一部分,我想注册。这就是我使用流利等待所做的:
public void joinPrivateClass() {
System.out.println("Starting join private class");
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
.withTimeout(Duration.ofSeconds(480))
.pollingEvery(Duration.ofSeconds(5))
.ignoring(NoSuchElementException.class);
WebElement signUp = wait.until(new Function<WebDriver, WebElement>() {
public WebElement apply(WebDriver driver) {
WebElement signUpButton = driver.findElement(By.xpath("//*[@id=\"live-class-322102\"]/div[1]/div/div/button"));
if(signUpButton.isDisplayed()){
System.out.println("button is displayed");
} else {
System.out.println("button is not displayed yet");
}
return signUpButton;
}
}); signUp.click();
}
我的问题是,在页面加载后,当 fluentwait “工作”时,我希望每 5 秒有一个“按钮不显示”,直到它被点击。但是无论是否显示按钮,我都没有收到任何消息,“按钮未显示”和“按钮已显示”,所以我认为“wait.until”中的某些内容失败了
有些事情要提一下,我不是程序员,如果我做错了很抱歉,
同样在我的 IDE (intelliJ) 中,它标志着我是这部分代码的“驱动程序”
Wait<WebDriver> wait = new FluentWait<WebDriver>(driver)
在“紫色”和这个“驱动程序”中:
public WebElement apply(WebDriver driver)
灰色如果它有什么关系!感谢您的宝贵帮助