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

Selenide selenium StaleElementReferenceException:在缓存中找不到元素

劳麒
2023-03-14

我必须打开页面中的所有链接,然后检查是否有文本(“无信息”)。

我用了赛琳娜v3。5和硒v2。53个图书馆。然而,我有一个例外“StaleElementReferenceException”。

我的代码如下:

    open(url);
        WebDriverRunner.clearBrowserCache();

        WebDriverRunner.getWebDriver().manage().timeouts().implicitlyWait(3, TimeUnit.SECONDS);

        List<WebElement> linksize = WebDriverRunner.getWebDriver().findElements(By.tagName("a"));

        linksCount = linksize.size();
        links = new String[linksCount];
        Common.consoleOutput.printMessage(String.format("Total no of links Available: %d", linksCount));

        for (int i = 0; i < linksCount; i++)
        {
            links[i] = linksize.get(i).getAttribute("href");

        }
        // navigate to each Link on the webpage
        for (int i = 0; i < linksCount; i++) {
            WebDriverRunner.getWebDriver().navigate().to(url_arabic);
            WebElement error = $(Selectors.byText("No info"));
            $(error).shouldNotBe(visible).shouldNotBe(text("No info"));
        }

共有2个答案

毕衡
2023-03-14

在我使用以下代码获取链接元素后,它起作用了:

List<String> links = new ArrayList<>();
        for (SelenideElement link : $$("a"))
            links.add(link.attr("href"));

而不是

        List<WebElement> linksize = WebDriverRunner.getWebDriver().findElements(By.tagName("a"));
邢晗日
2023-03-14

使用web元素包装:

WebElement error = $(Selectors.byText("No info"));
$(error).shouldNotBe(visible).shouldNotBe(text("No info"));

尝试直接使用选择器包装:

$(Selectors.byText("No info")).shouldNotBe(visible).shouldNotBe(text("No info"));

我不建议使用$(WebElement),因为硒化物执行重新搜索元素。如果元素没有在第一时间找到,并且从WebElement获得正确的选择器是硒设计的困难。

 类似资料:
  • null 根据密钥在缓存中查找 如果找到,则从缓存返回结果 如果未找到,则返回NULL 我不想在cache-miss的情况下更新缓存,有没有办法使用spring注释来做到这一点

  • 我正在自动化一个枯燥的数据输入任务,所以我创建了一个程序,基本上是使用Selenium为我点击和键入。它跑得很好!除非它到达这个特定的“编辑详细信息...”元素,但是,无论我尝试什么方法,selenium都无法找到该元素。 我尝试使用一个CSS选择器来访问ID,但没有成功。我还尝试使用XPATH,并尝试通过给它一个带有按钮文本的'contains'语句来更加具体。最后,我使用selenium ID

  • 问题内容: 我有以下XPath: 当我在XPath Checker(Firefox扩展)中试用此XPath时,它一直都能完美运行。但是当我在Selenium中执行以下操作时: 它不断给我以下日志错误: 我为解决这个问题而疯狂。有人看到我的代码行有任何错误吗? 问题答案: 该查询字符串不应该像这样(根据javadoc api)吗?

  • 更新 下面是我用于single Ignite服务器的xml配置文件:

  • 我面临的错误截图 上面的一行显示了错误,它表示。我在堆栈溢出上看到过这种问题,但解决方案对我没有帮助

  • 这是我用来使用铬Web驱动程序和python查找元素的代码行 这是每次尝试运行代码时抛出的错误 这些是标题栏上的按钮,我试图让我的代码单击html按钮 这是努力按钮的html代码,我试图使用selenium来定位它,以便它可以点击这里,但它总是说没有找到这样的元素 我甚至创建了一个单独的函数来一次又一次地找到元素并在每次成功尝试后Hibernate5秒,直到它点击了元素,但仍然没有运气它永远运行而