You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Python Selenium提取script标签文本失败的问题求助

问题:Python Selenium无法提取script标签内文本

目标是使用Python Selenium提取高亮显示的文本,右键复制完整XPath得到/html/body/script[1]/text(),尝试以下6种方法均无法提取目标文本:

  • 尝试1:
element = driver.find_element(By.XPATH, "/html/body/script[1]/text()").text
print(element)

错误信息:

selenium.common.exceptions.InvalidSelectorException: Message: invalid selector: The result of the xpath expression "/html/body/script[1]/text()" is: [object Text]. It should be an element.

  • 尝试2:
element = driver.find_element(By.XPATH, "/html/body/script[1]").text
print(element)

结果:打印空白内容

  • 尝试3:
element = driver.find_elements(By.XPATH, "/html/body/script[1]").text
print(element)

错误信息:

AttributeError: 'list' object has no attribute 'text'

  • 尝试4:
for element in driver.find_element(By.XPATH, "/html/body/script[1]"):
    print(element)

错误信息:

TypeError: 'WebElement' object is not iterable

  • 尝试5:
for element in driver.find_elements(By.XPATH, "/html/body/script[1]"):
    print(element)

结果:

<selenium.webdriver.remote.webelement.WebElement (session="31e0e98bb28d49019385c0cff458fa02", element="e505e171-2ba5-4f29-beb2-ea99a7aa89e4")>

  • 尝试6:
for element in driver.find_elements(By.XPATH, "/html/body/script[1]"):
    print(element.text)

结果:打印空白内容


解决方法

Selenium的text属性仅能获取元素的可见文本,script标签内的内容属于元素的内部文本,需通过以下方式提取:

方法1:使用get_attribute('innerHTML')

script_element = driver.find_element(By.XPATH, "/html/body/script[1]")
print(script_element.get_attribute('innerHTML'))

方法2:使用get_attribute('textContent')

script_element = driver.find_element(By.XPATH, "/html/body/script[1]")
print(script_element.get_attribute('textContent'))

方法3:通过JavaScript执行XPath提取文本节点

如果需要直接针对文本节点提取,可借助execute_script执行JS:

text = driver.execute_script("return document.evaluate('/html/body/script[1]/text()', document, null, XPathResult.STRING_TYPE, null).stringValue;")
print(text)

内容的提问来源于stack exchange,提问作者ZackCase

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.24 00:00:30