假设您有一些带有 textarea 元素的 HTML,并且希望通过 Selenium(此处为 Java 绑定)获取其文本。
<textarea name="txtComment" id="txtComment" rows="2" cols="20">
Some comment inside the textarea
</textarea>
这就是我通过开发人员工具(Internet Explorer 和 Firefox)查看代码的方式,因此看起来它是一个普通的文本节点,而不是在元素的“value”属性内。
那为什么会这样getText() 不起作用:
driver.findElement(By.id("txtComment")).getText();
It only 返回一个空字符串.
But using getAttribute("value") 有效并返回预期的字符串:
driver.findElement(By.id("txtComment")).getAttribute("value");
This 按预期返回“文本区域内的一些评论”
这是相当令人惊讶的,因为 Selenium 文档关于获取文本() https://selenium.googlecode.com/svn/trunk/docs/api/java/org/openqa/selenium/WebElement.html#getText%28%29说如下:
获取该元素的可见(即未被 CSS 隐藏)innerText,
包括子元素,没有任何前导或尾随空格。
返回:
该元素的内部文本。
正如开头的 HTML 代码所示,元素的文本部分是可见的,它是“innerText”,不是吗?
有人可以阐明我错在哪里,或者如果我没有,为什么在 Selenium 中这样实现?
在 Python 中,它给出相同的结果:
driver.find_element_by_id("txtComment").text
driver.find_element_by_id("txtComment").get_attribute("value")
文本区域内的一些评论。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)