使用 selenium 进行抓取网页的时候,通过 .text () 获取不到文本内容解决办法

596 阅读1分钟

selenium 获取不了标签文本的解决方法,通过 driver.find_element_by_xxx ().text 为空的解决办法

<a href="http://www.baidu.com">百度</a> 

假设当前通过 .text 获取不到文本,那么当前定位的元素可能被隐藏了。

  1. 判断是否被隐藏:driver.find_element_by_xx ().is_displayed ()
print(driver.find_element_by_xx().is_displayed())
  • 打印结果,如果得到 false 或者空白的结果。那就说明被隐藏了

怎么解决?

is_displayed () 结果为 false 的元素,依然可以通过 “getAttribute()” 方法获取元素的属性.

由于 webdriver spec 的定义,Selenium WebDriver 只会与可见元素交互,所以获取隐藏元素的文本总是会返回空字符串。

文本还可以使用 deiver.find_element_by_xx().get_attribute('attributeName')来获取。

get_attribute('textContent') 获取元素标签的内容
get_attribute('innerHTML') 获取元素内的全部 HTML get_attribute('outerHTML') 获取包含选中元素的 HTML