После некоторого времени поиска возникшей проблемы я не смог найти никакого решения.Итак, я здесь.
Некоторое предыстория, я пытаюсь автоматизировать регистрацию, подтверждение и присоединение к "Live Class" для определенной платформы.
Для этого у вас есть каждые 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)
в СЕРЫМ, если это имеет какое-либо отношение к!спасибо за вашу драгоценную помощь