在缓存中找不到元素 - 可能是自查找以来页面已更改 - 命令持续时间或超时

时间:2015-02-15 01:20:54

标签: selenium selenium-webdriver

我想要实现的是一个断言,在更新按钮被点击后显示在描述字段中输入的文本,但是我收到了我在上面标题中提到的错误。非常感谢任何帮助!

FYI - 页面在用户点击更新按钮后刷新,但是,我没有注意到网址有任何变化!

我的代码:

//send text to the description text field    
WebElement description = driver.findElement(By.id(PvtConstants.UPDATE_KEYNAME_DESCRIPTION_FIELD));
description.sendKeys(keyname_description);

//verify the text (this is the assertion)
verifyDisplay(description.getAttribute("textContent") + "", By.id(PvtConstants.UPDATE_KEYNAME_DESCRIPTION_FIELD));

HTML:

<li>
<span>2.</span>
<label class="input_label" for="keyname_description">Description</label>
<textarea style="line-height:normal;" id="keyname_description" name="description" maxlength="256">this is my description text</textarea>
</li>

2 个答案:

答案 0 :(得分:1)

如果是文本字段或文本区域,则需要使用属性值获取值。 **description.getAttribute("value")**。我猜这是因为找不到属性 textContent 而引发错误。

答案 1 :(得分:1)

使用Javascript Executor从文本区域获取文本。让我知道此代码是否对您不起作用。

JavascriptExecutor js=(JavascriptExecutor) driver;

String description_text=(String) js.executeScript("return document.getElementById('keyname_description').innerHTML");
System.out.println(description_text);