Selenium(java)无法在不打印的情况下从嵌套元素中获取文本

时间:2013-09-16 11:55:31

标签: java selenium selenium-webdriver

我尝试从模态弹出窗口的标题中获取文本。在页面上有许多这样的窗口 - 每个都有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 个答案:

答案 0 :(得分:1)

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

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());