如何用Selenium提取网页元素文本?遇属性错误求助
解决Selenium提取网页文本的问题
先修正核心方法错误
你碰到的'WebElement' object has no attribute getText报错,是因为Selenium Python绑定里没有getText()方法,正确用法是调用WebElement的.text属性。
提取目标文本的具体方案
结合你提供的HTML结构,分两步提取所需内容:
1. 提取SoftFEPVis (GUI):
直接定位到class为menu-highlight的span元素,获取其文本:
# 定位目标子span元素 gui_label_element = Browser.find_element(By.CLASS_NAME, "menu-highlight") gui_label = gui_label_element.text.strip() print(gui_label) # 输出: SoftFEPVis (GUI):
2. 提取版本号1.6.4
版本号是父元素versionInfo的直接文本节点,不属于子元素,可通过两种方式获取:
方法一:父元素文本过滤拆分
# 定位父span元素 version_info_element = Browser.find_element(By.CLASS_NAME, "versionInfo") # 获取完整文本后拆分版本号 full_text = version_info_element.text.strip() version_number = full_text.split('"')[1] print(version_number) # 输出: 1.6.4
方法二:JS直接获取文本节点
通过执行JavaScript精准定位目标文本节点:
# 执行JS获取父元素下的版本号文本节点 version_number = Browser.execute_script(""" return document.querySelector('.versionInfo').childNodes[2].textContent.trim().replace(/"/g, ''); """) print(version_number) # 输出: 1.6.4
完整示例代码
from selenium import webdriver from selenium.webdriver.common.by import By # 初始化浏览器示例 Browser = webdriver.Chrome() Browser.get("你的目标网页URL") # 提取GUI标签 gui_label = Browser.find_element(By.CLASS_NAME, "menu-highlight").text.strip() # 提取版本号 version_info_text = Browser.find_element(By.CLASS_NAME, "versionInfo").text.strip() version_number = version_info_text.split('"')[1] print(gui_label) print(version_number) # 关闭浏览器 Browser.quit()
内容的提问来源于stack exchange,提问作者K Tran
相关产品推荐
相关产品推荐

