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

Selenium(java)不打印就无法从嵌套元素中获取文本

霍锦
2023-03-14

我试图从模态弹出窗口的标题获取文本。在页面上有许多这样的窗口——每个窗口都有uniqe id。在每个这样的模态窗口中,所有元素都有相同的类名,所以首先我需要指向正确的窗口,然后寻找特定的元素。所以我用这个代码来做:

public String getRFRTitle(String rfrNumber) {
    return driver.findElement(By.id("rfr-details-dialog-"+rfrNumber)).
            findElement(By.className("modal-title")).getText();  
}

但它没有向我展示任何东西。我发现,当我以前打印这个标题文本时,这个函数工作正常。在从函数返回值之前,我添加了以下内容:

System.out.println("tite: "+ driver.findElement(By.id("rfr-details-dialog-"+rfrNumber)).
        findElement(By.className("modal-title")).getText());

在返回文本之前,我尝试了初始化变量,但没有成功。我可以继续我的解决方案,但我很好奇这是Java还是Selenium的问题。

共有1个答案

堵彬彬
2023-03-14

这很可能是超时问题。以下内容可能适用于您,如果不适用,stacktrace将为您提供更多反馈。

By locator = By.cssSelector("#rfr-details-dialog-" + rfrNumber + " .modal-title");
int timeoutInSeconds = 10;

WebElement foundElement = new WebDriverWait(webdriver, timeoutInSeconds).until(ExpectedConditions.visibilityOfElementLocated(locator));

System.out.println("tite: " + foundElement.getText());
 类似资料:
  • 我在Java中使用selenium。我无法从组合框的html元素中获取文本。每次我在combobox中得到所选值的空白文本时。 下面是我的combobox的html结构。 我在元素中使用了以下xpath 请帮忙。 蒂亚。

  • 我正在使用下面的一段代码来获取某个特定定位器的文本。 这将返回字符串值,但只有在IE浏览器中,它才在其他浏览器(即Firefox和chrome)中失败并工作。 我面临这个问题: 组织。openqa。硒。WebDriverException:无法获取元素文本(警告:服务器未提供任何堆栈跟踪信息) 请帮我解决这个问题,IE浏览器中的这个异常也非常不一致,有时它通过了,有时失败了相同的代码。

  • 问题内容: 我使用一个带有两个自定义元素(v1)的Web组件制作了一个简单示例,其中一个嵌套在另一个中。index.html: app-container.html: 工具栏.html: 但是在toolbar.html 中与在app- container.html中相同,因此无法找到ID为的模板。如何解决这个问题呢? 示例已在Chrome 55上测试(不使用polyfill)。 问题答案: 包含对

  • 然后在main方法中,我尝试创建一个列表并打印出其中的元素。 没有语法错误,但当我尝试运行上面的代码时,终端不会返回任何内容。

  • 我需要从这个JSON中获取所有值作为数组,并放心 这是示例JSON 使用jsonpath提取器,它是 但我需要放心地提取路径 但是它不起作用,我怎么写JSON路径来得到需要的数组呢?

  • 问题内容: 的HTML 码 问题答案: 我已经看到这个问题在过去大约一年左右的时间里弹出了几次,我想尝试编写此函数…所以就到这里了。它接受父元素,并删除每个子元素的textContent,直到剩下的是textNode为止。我已经在您的HTML上对其进行了测试,并且可以正常工作。 你叫它