【问题标题】:Page navigates till last page and stays on last page without breaking the loop using selenium java页面导航到最后一页并停留在最后一页而不使用 selenium java 中断循环
【发布时间】:2020-11-08 21:41:44
【问题描述】:

我可以分页到最后一页,但它继续停留在最后一页

最后一页中的下一个按钮已启用并可点击。当计数达到总页数时,循环必须退出

由于某种原因,它一直停留在最后一页,我尝试了几种不同的方法来捕获错误。当页面到达最后一页时,它不会退出。下一页按钮可见并出现在页面上。

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) && (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;
    }
}

【问题讨论】:

    标签: java selenium selenium-webdriver while-loop pagination


    【解决方案1】:

    你的最后几行不应该是

    System.out.println(m);
    if(m >= pgcount) //or > ...but don't think so
    {
       break;
    }
    

    【讨论】:

      【解决方案2】:

      记住在java中第一页是第0页,第二页是第1页等等... 所以最后一个 if 语句中的条件应该是:

      m==pgcount-1;
      

      【讨论】:

        猜你喜欢
        • 2018-05-13
        • 1970-01-01
        • 1970-01-01
        • 2018-12-08
        • 1970-01-01
        • 1970-01-01
        • 2015-10-30
        • 1970-01-01
        • 2011-10-07
        相关资源
        最近更新 更多