![](/img/trans.png)
[英]Print all the data obatained from FIND_ELEMENTS_BY_ID() - Python
[英]Selenium find_elements_by_id() doesn't return all elements
我试图在带有 Selenium (python) 的网页上找到某种类型的所有元素。 为简单起见,假设他们的 id 是elem_id
。 我正在使用以下代码片段来执行此操作:
all_elements = driver.find_elements_by_id("elem_id")
print(str(len(all_elements)))
我知道有问题的网页上有大约 3000 个这种元素,但是每当我打印all_elements
的长度时,它总是打印1000
。
它肯定找到了正确的元素(我检查过),但不知何故它没有一次找到所有元素。 它还随机选择 1000 个元素,这意味着它既不会专门选择前 1000 个元素,也不会专门选择最后 1000 个元素。 我试图找出 Selenium 可以找到多少个元素是否有上限,但似乎没有最大数量为 1000。
有谁知道为什么 Selenium 一次只能找到 1000 个元素? 我究竟做错了什么? 非常感谢!
从根本上说,您看到的是正确的行为。 尽管您知道网页中有近 3000 个这种特定类型的元素,但是:
id
为elem_id
所有元素在视口中可能不可见您可以在Selenium 如何点击屏幕上 50% 和 50% 不在屏幕上的元素中找到相关的详细讨论?
<iframe>
/ <frame>
标签内,而WebDriver实例可能无法从顶级视图中看到这些元素。你可以在Ways to deal with #document under iframe 中找到相关的详细讨论
您可以在如何单击 Google 趋势中的加载更多按钮并通过 Selenium 和 Python 打印所有标题中找到相关的详细讨论
因此,在 ~3000 个奇数元素中,您只能看到 ~1000 个元素。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.