java - Selenium(java)无法从嵌套元素获取文本而不打印它

标签 java selenium selenium-webdriver

我尝试从模式弹出窗口的标题中获取文本。页面上有很多这样的窗口 - 每个窗口都有唯一的 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 问题。

最佳答案

这很可能是超时问题。以下内容可能适合您,如果不适合,堆栈跟踪将为您提供更多反馈。

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(java)无法从嵌套元素获取文本而不打印它,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18827395/

相关文章:

selenium - 无法在 firefox 中使用 selenium 3 注入(inject) javascript

JAVA Selenium Webdriver 下载前询问每个文件的保存位置

java - 如何使用字段中的 linkText 提取 WebElements 并单击它

java - Selenium WebDriver 错误? ChromeDriver 设置值时不关注字段?

java - Mockito 转换为泛型

Java 等同于 Python 的 itertools.groupby()?

java - 在 Selenium Java 中获取 ElementNotInteractableException 错误

javascript - 如果由 javascript 提供服务,如何使用 WebClient 下载文件

java - 命令行输入

Java:给定参数时选择对象