当前位置: 首页 > 知识库问答 >
问题:

刷新页面直到元素出现-JAVA-Selenium

佟和安
2023-03-14

我是新的编码,我有以下问题,而自动与硒使用Java:

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

查找唯一字符串的代码:

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

现在我需要创建一个循环,在这个循环中,站点会一直刷新,直到找到字符串变量为止。当它找到字符串变量时,我就可以选择收件箱中的顶部元素并继续测试。

有人能在这个问题上帮助我吗?或者给我一些建议,告诉我如何创造同样的结果,但是用更好的方法?非常感谢!

共有3个答案

葛雨华
2023-03-14

我是这样算出来的:

do
{
    driver.refresh();
    driver.waitForPageToLoad();
    driver.wait(1000);
} while (driver.findElements(By.locator(element)).size() < 1);
卫浩瀚
2023-03-14
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
薛经艺
2023-03-14
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));
                              }
    });

我自己已经找到解决办法了

 类似资料:
  • 我想运行一个selenium测试,当单击旧页面中的按钮时,它是否导航到新页面。然后我想测试当新页面中的按钮被点击时,它是否导航回旧页面。 当我单击第一页上的按钮并检查新页面上的按钮元素是否出现时,测试工作正常。但是当我使用selenium点击第二页上的button元素,检查第一页上的button元素是否已经出现时,它没有找到第一页上的button元素,尽管我第一次使用相同的button元素去第二页

  • 以下是我的观点: 任何我的用户。java: 因此,当我在Name字段中键入一些内容并单击提交时,我希望看到带有id“问候语”的outputText,因为user.name渲染()应该返回true。 但是,我需要在提交名称后刷新页面才能看到它。为什么可能是原因?为什么它需要页面刷新?没有页面刷新我怎么能做到呢?

  • 线程“main”org.openqa.selenium.StaleElementReferenceException中的异常:stale的元素引用:该元素不再附加到DOM或页面已刷新

  • 问题内容: 我有一个应用程序,它使用一个ng-view和多个控制器和视图。如果我浏览根目录,例如:www.domain.com,则一切正常。除非我按Ctrl +R(刷新),否则会显示404错误页面未找到。例如:刷新此页面给我错误。http://domain.com/item/1/。 但是,如果我使用hashbang访问页面,则它可以工作。例如:http://domain.com/#!/item/1

  • 问题内容: 我有一个文件,其中我在页面顶部显示外部页面(使用iframe),其他部分是写在文件中的html代码的输出。 HTML代码如下所示: 现在,我想以编程方式刷新页面而不刷新。 我的问题是我可以不刷新页面就刷新页面吗? 答案/提示将不胜感激。 问题答案: 该嵌在主HMTL页面(或在JSP)。因此,如果刷新页面,则肯定会再次加载iframe。 为了避免这种情况,我可以考虑以下两种选择: 使用A

  • 本文向大家介绍AngularJS实现页面定时刷新,包括了AngularJS实现页面定时刷新的使用技巧和注意事项,需要的朋友参考一下 有时我们在前端可能会有这样的需求: 1、每隔一段时间刷新一下页面中的数据 2、根据需要可以暂停和启用刷新 接下来我们就来看下AngularJS的实现方法: 首先我们了解到AngularJS中$interval可以用来处理间歇性处理一些事情,那么我们的间歇性刷新就使用i