python - Selenium 元素中没有肯定包含文本的文本
问题描述
所以,我有一个 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”,就像在这个问题中一样,没有帮助。那是某种硒错误,还是我做错了什么?以防万一,有问题的html。
解决方案
尝试使用
n.getAttribute("textContent")
“标题”标签可能会被特殊处理,因为“它没有被渲染”: https ://www.w3.org/TR/webdriver/#get-element-text
推荐阅读
- reactjs - 如何使用自定义主题提供程序将所有反应示例包装在 styleguidist 中?
- r - 按组的时间序列
- echarts - Echarts dataZoom滑块句柄图标形状不起作用
- xamarin - Xamarin Forms Maps,添加pin后,moveToRegion不起作用
- javascript - Autodesk Forge - 突出显示与叶几何体分开的父几何体
- javascript - 放大 codegen ENOENT:没有这样的文件或目录,打开 scheme.graphql
- flutter - 当 int 通常为 32 或 64 位时,“int”如何表示一个字节(8 位)?
- angular - Ionic 5:PWA 离子图标消失
- php - 在 Traefik 后面的 Docker 上配置 Nextcloud
- php - 从表 CodeIgniter 中获取最近 3 天的数据