【发布时间】: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。
【问题讨论】: