【问题标题】:No text in Selenium element which definitely contains textSelenium 元素中没有肯定包含文本的文本
【发布时间】:2021-03-05 02:51:38
【问题描述】:

所以,我有一个 Selenium 网络驱动程序正在运行。我想从某些节点中提取文本。我可以找到他们:

In [73]: nodes = driver.find_elements_by_css_selector("rect > title")
In [74]: len(nodes)
Out[74]: 63

但它们不包含任何文本:

In [75]: for n in nodes:
    ...:     if n.text:
    ...:         print(n.text)
<prints nothing>

但是,如果我在连接到此驱动程序实例的浏览器中打开 devtools,我会发现与此 CSS 选择器相同数量的节点 - 它们肯定包含一些文本:

所以,我有一些带有 Selenium 无法检索的文本的节点。为了确保这一点,我从该页面的源代码创建了一个 BeautifulSoap - 我能够以这种方式找到有问题的元素并获取它们的文本。

In [86]: [a.text for a in s.select("rect > title")]
Out[86]: 
['Sometext',
 'Sometext',
 'Sometext',
 'Sometext',
 ...]

取而代之的是“innerText”,如this 问题,没有帮助。这是某种硒错误,还是我做错了什么?以防万一,there 是有问题的 html。

【问题讨论】:

    标签: python selenium


    【解决方案1】:

    尝试使用

    n.getAttribute("textContent")

    “title”标签可能因为“它没有被渲染”而被特殊处理: https://www.w3.org/TR/webdriver/#get-element-text

    【讨论】:

    • 成功了!不过很奇怪,因为它们看起来像是被渲染的。不过,谢谢
    • 我敢打赌,对于“标题”标签的 webelemetns 代码中的特殊处理...找不到 100% 的证明。
    猜你喜欢
    • 2021-07-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-09-01
    • 2022-12-12
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多