如何通过 Selenium 和 Python 从 html 标签跨度获取文本
Posted
技术标签:
【中文标题】如何通过 Selenium 和 Python 从 html 标签跨度获取文本【英文标题】:How to get text from html tag span through Selenium and Python 【发布时间】:2019-06-12 04:43:52 【问题描述】:这是我的 html 并试图获取文本 必须是唯一的。 使用 Python 2.7
尝试使用:
driver.find_element_by_xpath("//span[@id='lblError']/text()")
xpath 无效。
【问题讨论】:
【参考方案1】:enter code here
time.sleep(1)
enter code here
element = driver.find_element_by_xpath("//span[@id='lblError']")
enter code here
text = element.text
【讨论】:
【参考方案2】:尝试通过 ID 查找元素,然后 get_attribute("innerHTML")。
var el = driver.find_element_by_id("lblerror")
var text = el.get_attribute("innerHTML")
【讨论】:
我用的是python,上面的代码好像是java的。我曾尝试使用: text = driver.find_element_by_id("lblError") 并且该错误已解决。 首先,您的 sn-p 错误。查看 python webdriver 文档selenium-python.readthedocs.io 感谢您提供参考链接,但我的 sn-p 没有错。我会附上一个完整的东西。 我没有写" text = driver.find_element_by_id("lblError")" 你显示为错误【参考方案3】:要检索文本必须是唯一的,您可以使用execute_script()
方法,您可以使用以下解决方案:
myElement = driver.find_element_by_xpath("//span[@id='lblError']")
myText = driver.execute_script('return arguments[0].lastChild.textContent;', myElement).strip()
【讨论】:
下面的不行,好像路径无效:myElement = driver.find_element_by_xpath("//span[@id='lblError']") 嗯,无效路径,我从您的代码试验和您提供的 HTML 快照中获取了参考。您可以使用基于文本的相关 HTML 更新问题吗?当您使用 pyhton 2.7 时,请记住在适用的之前附加 self。以上是关于如何通过 Selenium 和 Python 从 html 标签跨度获取文本的主要内容,如果未能解决你的问题,请参考以下文章
如何通过 Python Selenium BeautifulSoup 从网站中提取证券价格作为文本
如何使用 Selenium 和 Python 在 Python 类中调用方法
如何通过 Python 使用 GeckoDriver 和 Firefox 使 Selenium 脚本无法检测?
如何根据提供的HTML通过Selenium和Python搜索节点?