从jquery的id update找到的WebElement中获取文本

时间:2011-11-07 12:39:32

标签: java jquery webdriver selenium-webdriver

我正在尝试获取一些文本和id,以便我可以在测试后期使用它。我可以找到元素:

WebElement jrnrText = driver.findElement(
             By.id("ctl00_content_createnewschema_modalAlert_alertMessage"))

但问题是该值将在稍后由jquery动态添加,因此当我到达页面时,id将出现。然后我单击一个按钮,jquery将更新id。

我知道我可以使用jrnrText.getText(),但是在我点击按钮之前,id不会包含任何内容,因此不会给我任何内容。

这是我的代码:

driver.findElement(By.id("ctl00_content_createnewschema_btnCreate")).click();

WebElement jrnrText = driver.findElement(
     By.id("ctl00_content_createnewschema_modalAlert_alertMessage"))

if(jrnrText.isDisplayed()){
    wait.until(presenceOfElementLocated(By.xpath('''//td[contains(text(),"part of the text"]''')))
}

println jrnrText.getText()

1 个答案:

答案 0 :(得分:0)

你的问题令人困惑,但我会尽力回答。首先,如果元素的ID基于用户输入动态变化,那么它完全违背了ID的目的。这是一个应该在网站上修复的错误。

如果由于某种原因无法修复错误,那么我们需要更多细节。您在上面显示的代码中的位置是否失败?当你说“在我点击按钮之前id不包含任何内容”时,你是否意味着id为“ctl00_content_createnewschema_modalAlert_alertMessage”的元素不存在?即使在您说明的按钮点击后更新了ID?