Selenium find_elements_by_id()不会返回所有元素

问题描述 投票:-1回答:1

我正在尝试使用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。

有人知道为什么硒一次只能找到1000个元素吗?我究竟做错了什么?非常感谢!

python selenium iframe lazy-loading viewport
1个回答
0
投票

基本上,您看到的是正确的行为。尽管您知道网页中几乎有3000种这种特定类型的元素,但是:

  • 其中一些元素可能在<iframe> / <frame>标记内,并且WebDriver实例可能不具有这些元素在顶级视图中的可见性。
  • 您可以在Ways to deal with #document under iframe中找到相关的详细讨论

因此,您只能看到〜3000个奇数元素中的〜1000个。

© www.soinside.com 2019 - 2024. All rights reserved.