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

在表中选择一行并在WebDriver中获取“Element不再附加到DOM”StaleElementReduce ceException消息

傅阿苏
2023-03-14

我正在使用Selenium 2/WebDriver实现自动化。我有一个表,正在尝试选择其中的一行。当测试运行时,我可以看到该行变得突出显示,就像单击了它一样,但我立即得到:

" org . open QA . selenium . staleelementreferenceexception:元素不再附加到DOM "

错误和测试失败。

代码如下:

@Test
public void rowSelection() throws Exception
{
    SeleniumHelper helper = new SeleniumHelper();
    action = new SeleniumActionHelper(driver);

    helper.login();

    String testUrl = navigateToUrl("option/listOptions.xhtml");
    driver.get(testUrl);

    WebElement table = findElementById("tableSection:dataTableWrapped_data");
    List<WebElement> allRows = table.findElements(By.tagName("tr"));
    for (WebElement row : allRows)
        {
            List<WebElement> cells = row.findElements(By.tagName("td"));
            for (WebElement cell : cells)
            {
                WebElement listName = cell.findElement(By.xpath("./*[text()='body_build']"));
                listName.click();
            }
        }
}

我已经把一个线程睡眠(2000)放在列表名称()操作的前面和之后,但都没有帮助。任何帮助将不胜感激。

共有1个答案

邰德业
2023-03-14

如果您认为这是同步问题,可以使用wait.until

WebElement webElement = wait.until(ExpectedConditions.visibilityOf(listName));

webElement.click();

并有一个断点,并在您的应用程序中检查当您执行单击操作时定位器是否发生变化。如果是这样,您必须考虑更好的定位器。

 类似资料:
  • 我试图使用页面对象测试网站,当我执行我的脚本,我得到的元素不再附加到DOM(Selenium::WebDriver::Error::StaleElementReduce ceError)错误消息间歇调用函数。 我该如何克服这个问题,如果有任何建议?

  • 问题内容: 这是一个js小提琴, 显示了实际的问题。 在组件的render函数中,我使用class渲染div 。在相同组件的功能中,我期望能够选择类并像这样附加到它(因为组件已经安装) 但是,附加内容不会显示。我还尝试(也显示在小提琴中)以相同的方式进行添加,但从父组件到子组件的追加结果相同,并且也从子组件到父组件的空间进行追加结果。我尝试后者的逻辑是,可以更确定dom元素已被渲染。 同时,我能够

  • 问题内容: 如何选择一个表中所有未出现在另一表中的行? 表格1: 表2: 表1中不在表2中的行的示例输出: 也许这样的事情应该工作: 问题答案: 如果您在另一条注释中提到有300列,并且想要对所有列进行比较(假设这些列的名称相同),则可以使用a 隐式联接两个表之间所有匹配的列名称,以便不必繁琐地手动输入所有加入条件:

  • null 目前我可以完成第1和第2步,但是(假设可以完成)我无法获得第3步中“not exist”的语法。 这是我当前的代码:

  • 问题内容: 我正在尝试编写一个项目。在我的项目中,我可以成功拖动图像。 这是图片,这是我的ViewOnTouchListener代码: 请看图片 ,这是我的DragView代码: 一切都好。但是我需要做的是,当用户单击图像(贴纸)时,阴影和边框消失。当用户再次单击图像时,它们会再次出现。我不知道该怎么办。 问题答案: 最后,我找到了正确的答案。我认为这可能会有所帮助。所以我分享。首先,我在Drag

  • 问题内容: 我有两个postgresql表: 我想获取其中没有一行的每个IP地址。 我尝试了此查询,但它引发了语法错误。 我也想知道此查询(进行调整以使其工作)是否是为此目的性能最佳的查询。 问题答案: 基本上有4种技术可以完成此任务,所有这些技术都是标准SQL。 在Postgres中通常最快。 [](https://www.postgresql.org/docs/current/queries-