由于webdriver spec
的定义,Selenium WebDriver 只会与可见元素交互,所以获取隐藏元素的文本总是会返回空字符串。
可是,在某些情况下,我们需要获取隐藏元素的文本。这些内容可以使用element.attribute('attributeName')
, 通过textContent
, innerText
, innerHTML
等属性获取。
由于webdriver spec
的定义,Selenium WebDriver 只会与可见元素交互,所以获取隐藏元素的文本总是会返回空字符串。
可是,在某些情况下,我们需要获取隐藏元素的文本。这些内容可以使用element.attribute('attributeName')
, 通过textContent
, innerText
, innerHTML
等属性获取。
innerHTML
会返回元素的内部 HTML, 包含所有的HTML标签。 Hello World!
的innerHTML
会得到Hello World!
textContent
和 innerText
只会得到文本内容,而不会包含 HTML 标签。
textContent
是 W3C 兼容的文字内容属性,但是 IE 不支持innerText
不是 W3C DOM 的指定内容,FireFox不支持
-
from selenium
import webdriver
-
-
DEMO_PAGE =
'''data:text/html,
-
Demo page for how to get text from hidden elements using Selenium WebDriver.
-
Demo div
'''
-
-
driver = webdriver.PhantomJS()
-
driver.get(DEMO_PAGE)
-
-
demo_div = driver.find_element_by_id(
"demo-div")
-
-
print demo_div.get_attribute(
'innerHTML')
-
print driver.execute_script(
"return arguments[0].innerHTML", demo_div)
-
-
print demo_div.get_attribute(
'textContent')
-
print driver.execute_script(
"return arguments[0].textContent", demo_div)
-
-
driver.quit
-
Demo div
"display:none">
with a hidden paragraph inside.
-
Demo div
"display:none">
with a hidden paragraph inside.
-
-
Demo div
with a hidden paragraph inside.
-
Demo div
with a hidden paragraph inside.