【问题标题】:find_element_by_id() when it doesn't find any elementfind_element_by_id() 当它没有找到任何元素时
【发布时间】:2021-04-30 08:19:12
【问题描述】:

我刚刚开始学习 python,我正在使用 selenium 与网页交互。 我必须重复一个特定的动作,直到某个元素出现在 HTML 代码中,所以我写了这样的东西: \\\\\\\\\\\\\\\\\\\\\

 t = driver.find_element_by_id("i3") 
 t.send_keys(Codice)

 while driver.find_element_by_id("i3")==t:

   time.sleep(5)

   t.send_keys(Keys.RETURN)

\\\\\\\\\\\\\\\\\\\\\\\\

但它不起作用,因为它不会在最后停止,所以我想知道函数 driver.find_element_by_id("i3") 在找不到元素时返回什么。 另外,是否有更合适的循环来执行此操作? 谢谢你,抱歉英语不好

【问题讨论】:

  • 你的意图不是很清楚。告诉我们您的目标是什么(手动操作序列/伪代码)

标签: python selenium while-loop cycle


【解决方案1】:

您的代码不清楚,我可以在这里说的是 while 循环来验证元素是否呈现可以通过

while driver.find_elements_by_id("i3")

由于driver.find_elements_by_id 返回网络元素列表。万一找到的元素列表不为空且为真,万一未找到元素列表为空且为假。

【讨论】:

  • 列表没有方法len。你的意思是len(driver.find_elements_by_id("i3"))?此外,您不需要将列表长度与 0 进行任何比较 - 简单的 while driver.find_elements_by_id("i3") 就足够了
  • @JaSON 谢谢!你说的对。我很久没有编写 Python 代码了 :) 过去 5 年一直在使用 Java :)
  • @GabrieleSasdelli 如果对您有帮助,请告诉我,如果有帮助,请接受我的回答
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-03-19
  • 2011-02-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-03-19
  • 1970-01-01
相关资源
最近更新 更多