drk*_*hng 5 html java selenium selenium-webdriver
假设您有一些带有 textarea 元素的 HTML,并且希望通过 Selenium(此处为 Java 绑定)获取其文本。
\n<textarea name="txtComment" id="txtComment" rows="2" cols="20">\n Some comment inside the textarea\n</textarea>\nRun Code Online (Sandbox Code Playgroud)\n 这就是我通过开发人员工具(Internet\xc2\xa0Explorer 和 Firefox)查看代码的方式,因此看起来它是一个普通的文本节点,而不是在元素的“value”属性内。
\n为什么getText() 不起作用:
\ndriver.findElement(By.id("txtComment")).getText();\nRun Code Online (Sandbox Code Playgroud)\n它只返回一个空 String。
\n但是使用getAttribute("value") 可以工作并返回预期的字符串:
\ndriver.findElement(By.id("txtComment")).getAttribute("value");\nRun Code Online (Sandbox Code Playgroud)\n这将按预期返回“文本区域内的一些评论”
\n这是相当令人惊讶的,因为 Selenium 文档中有关getText()的内容如下:
\n\n\n获取此元素的可见(即未被 CSS 隐藏)innerText,\n包括子元素,不带任何前导或尾随空格。
\n返回:\n该元素的内部文本。
\n
正如开头的 HTML 代码所示,元素的文本部分是可见的,它是“innerText”,不是吗?
\n在 Python 中,它给出相同的结果:
driver.find_element_by_id("txtComment").text
driver.find_element_by_id("txtComment").get_attribute("value")
Run Code Online (Sandbox Code Playgroud)
文本区域内的一些评论。
| 归档时间: |
|
| 查看次数: |
7390 次 |
| 最近记录: |