本文共 963 字,大约阅读时间需要 3 分钟。
在学习过程中,我遇到了一个问题,使用Selenium获取标签文本时发现内容为空。例如,在提取“设置”a标签的文本时,原本的代码无法获取到预期的信息。
最初的代码如下:
from selenium import webdriverbrowser = webdriver.Chrome()url = 'https://www.baidu.com'browser.get(url)input = browser.find_element_by_css_selector('.pf')print(input.text)browser.close()
运行结果显示,元素不存在,input.text
的值为 None
。尝试使用 input.is_displayed()
方法后,发现返回值为 False
,这表明元素可能被隐藏或不再存在于页面中。Selenium WebDriver 只会与可见元素交互,因此隐藏元素的文本信息会返回空字符串。
为了解决这个问题,我尝试使用 get_attribute('textContent')
方法来获取元素的文本内容。修改后的代码如下:
from selenium import webdriverbrowser = webdriver.Chrome()url = 'https://www.baidu.com'browser.get(url)input = browser.find_element_by_css_selector('.pf')print(input.get_attribute('textContent'))browser.close()
运行后,能够成功获取到 “设置” a 标签的文本内容。这种方法适用于获取隐藏或不可见元素的文本信息。
通过这个实验,我学会了一个重要的技巧:当 find_element_by_css_selector
方法无法找到元素时,使用 get_attribute('textContent')
或 get_attribute('innerText')
方法可以获取元素的文本内容。这个方法特别适用于处理隐藏或不可见的元素。
总结一下,解决问题的关键在于理解Selenium的工作原理,并掌握正确的方法来获取元素的文本信息。
转载地址:http://vvhl.baihongyu.com/