【问题标题】:Refreshing page until element appears - JAVA - Selenium刷新页面直到元素出现 - JAVA - Selenium
【发布时间】:2015-11-10 14:33:40
【问题描述】:

我是编码新手,在使用 Java 使用 Selenium 进行自动化时遇到以下问题:

我正在测试一个 SaaS 解决方案,我需要刷新我的页面,直到某个项目出现在我的收件箱中。我不能简单地使用 findelement 语句,因为该项目仅在一段时间后出现并且仅在页面被刷新时出现。此外,所有收件箱项目的标题中都有唯一的序号。这个唯一的数字我已经保存为一个字符串变量,我想使用这个字符串变量来查看在刷新页面几次后收件箱项目是否出现。

查找唯一字符串的代码:

//Get expense report number
    String filename = strng;
    String ExpenseReportNumber = StringUtils.substringBefore(filename, " submitted"); // returns Expense Report #XXXX

现在我需要创建一个循环,在该循环中网站不断刷新,直到它在字符串变量上受到打击。当它找到字符串变量时,我可以选择收件箱中的顶部元素并继续我的测试。

有人可以帮助我解决这个问题,或者就如何创建相同的结果但然后采用更好的方法给我建议吗?非常感谢!

【问题讨论】:

    标签: java selenium


    【解决方案1】:
    Wait<WebDriver> wait12 = new FluentWait<WebDriver>(driver)
                .withTimeout(600, TimeUnit.SECONDS)
                .pollingEvery(15, TimeUnit.SECONDS)
                .ignoring(NoSuchElementException.class);
    
        WebElement ToDoExpense = wait12.until(new Function<WebDriver, WebElement>() {
            public WebElement apply(WebDriver driver) {
                driver.navigate().refresh();
                return driver.findElement(By.partialLinkText(ExpenseReportNumber));
                                  }
        });
    

    我自己找到了解决办法

    【讨论】:

    • 请务必在可能的情况下接受此答案,以便将问题标记为已回答。谢谢!
    • 这最终在页面中不断循环 - 或 StaleElementReferenceException 因此不能被视为答案。
    【解决方案2】:
    public WebDriverWait wait = new WebDriverWait(driver, 10); //throws exception if element is not found within 10 seconds
    driver.navigate().refresh();
    wait.until(ExpectedConditions.presenceOfElementLocated(By.partialLinkText(ExpenseReportNumber)));
    //continue your test
    

    【讨论】:

    • 您好 Shahzaib,感谢您的反馈!你的代码更干净,我现在正在使用它。谢谢
    【解决方案3】:

    我是这样计算的:

    do
    {
        driver.refresh();
        driver.waitForPageToLoad();
        driver.wait(1000);
    } while (driver.findElements(By.locator(element)).size() < 1);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2021-08-13
      • 1970-01-01
      • 2014-09-26
      • 2021-12-26
      • 2015-03-24
      • 1970-01-01
      • 2019-06-05
      相关资源
      最近更新 更多