#java #selenium #selenium-webdriver #while-loop #pagination
#java #селен #selenium-webdriver #while-цикл #разбивка на страницы
Вопрос:
Я могу разбивать страницы на страницы до последней страницы, но она продолжает оставаться на последней странице
Кнопка «Далее» на последней странице включена и доступна для нажатия. Когда счетчик достигает общего количества страниц, цикл должен завершиться
По какой-то причине он продолжает оставаться на последней странице, и я попробовал несколько разных методов, чтобы поймать ошибку. Он не завершается, когда страница достигает последней страницы. Следующая кнопка видна и присутствует на странице.
int m = 1;
while (true) {
WebElement source_next = driver.findElement(By.xpath("//button[@id='nxt']"));
WebDriverWait s = new WebDriverWait(driver, 25000);
s.until(ExpectedConditions.elementToBeClickable(source_next));
action.moveToElement(source_next).perform();
Thread.sleep(5000);
((JavascriptExecutor) driver).executeScript("arguments[0].click();", source_next);
Thread.sleep(1000);
WebElement modalcontent = driver.findElement(By.xpath("//div[@class='modal-content']"));
WebElement ignore_yes = driver.findElement(By.xpath("//button[@id='modal-btn-si']"));
if ((modalcontent != null) amp;amp; (modalcontent.isDisplayed())) {
((JavascriptExecutor) driver).executeScript("arguments[0].click();", ignore_yes);
}
driver.manage().timeouts().pageLoadTimeout(TestUtil.PageLoadTimeOut, TimeUnit.SECONDS);
m = m 1;
System.out.println(m);
if (m == pgcount) {
break;
}
}
Ответ №1:
Разве ваши последние строки не должны быть
System.out.println(m);
if(m >= pgcount) //or > ...but don't think so
{
break;
}
Ответ №2:
Помните, что в java первая страница — это страница 0, вторая страница — страница 1 и т.д… Итак, условие в последнем операторе if должно мне:
m==pgcount-1;