Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/293.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 为什么Selenium中的getText()不适用于<;textarea>;元素,但getAttribute(“value”)是?_Java_Html_Selenium_Selenium Webdriver - Fatal编程技术网

Java 为什么Selenium中的getText()不适用于<;textarea>;元素,但getAttribute(“value”)是?

Java 为什么Selenium中的getText()不适用于<;textarea>;元素,但getAttribute(“value”)是?,java,html,selenium,selenium-webdriver,Java,Html,Selenium,Selenium Webdriver,假设您有一些带有textarea元素的HTML,并且希望通过Selenium(这里是Java绑定)获取其文本 它只返回一个空字符串 但是使用getAttribute(“value”)可以运行并返回预期的字符串: driver.findElement(By.id("txtComment")).getAttribute("value"); 这将按预期返回“文本区域内的一些注释” 这是相当令人惊讶的,因为Selenium文档中有以下内容: 获取此元素的可见(即

假设您有一些带有textarea元素的HTML,并且希望通过Selenium(这里是Java绑定)获取其文本

它只返回一个空字符串

但是使用getAttribute(“value”)可以运行并返回预期的字符串:

driver.findElement(By.id("txtComment")).getAttribute("value");
这将按预期返回“文本区域内的一些注释”

这是相当令人惊讶的,因为Selenium文档中有以下内容:

获取此元素的可见(即未被CSS隐藏)innerText, 包括子元素,没有任何前导或尾随空格

返回: 此元素的内部文本

正如开头的HTML代码所示,元素的文本部分是可见的,它是“innerText”,不是吗


有人能说明我错在哪里吗?如果我没有错,为什么在Selenium中实现这样的功能?在Python中,它给出了相同的结果:

driver.find_element_by_id("txtComment").text
driver.find_element_by_id("txtComment").get_attribute("value")
文本区内的一些评论。

与WebDrivero(WDIO)尝试了相同的方法

getText()未在Textarea上工作。返回空字符串

改为使用getValue(),对我有效。返回了精确的字符串


Auto\u Internal\u Note\u Description

,因为getText返回一个文本节点。Input和textarea元素文本存储在value属性中,因此您需要检索“value”属性的数据。是的,但当我使用某些浏览器(如firefox)的开发工具时,我看到的代码如我的问题->中所示,因此它似乎是一个textnode,不是吗?这是否回答了您的问题?但是表单
input
元素(对于实际的用户输入)的情况并非如此。text真的获得了
textarea
的内部文本吗?我希望
.text
总是返回一个空字符串。你用什么测试它(包括版本)?
driver.findElement(By.id("txtComment")).getAttribute("value");
driver.find_element_by_id("txtComment").text
driver.find_element_by_id("txtComment").get_attribute("value")