【问题标题】:Selenium Python: How to wait for div to appear, do stuff, then wait again and so on?Selenium Python:如何等待 div 出现,做一些事情,然后再次等待等等?
【发布时间】:2022-02-02 17:50:29
【问题描述】:

我有一个网站,我需要在其中自动执行一些操作。

每次客户进行购买时,都会出现一个带有输入和提交按钮的 div。在那个 div 上,我需要输入一个值并单击提交。 div 然后关闭,直到下一次购买出现在同一个 div 中。我需要做同样的动作,等等。

这是不确定的。

我已经找到了一些指向方向的解决方案: Selenium - wait until element is present, visible and interactable

WebDriverWait(browser, 20).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".reply-button"))).click()

但我无法提供具体的等待时间。我需要一种解决方案,可以无限期地循环并全天进行所有购买

我找到的每一个解决方案都解决了网站加载需要时间的问题。但我有一个完全不同的问题。我需要等待购买发生。所以我无法设定具体的等待时间。它可能是无限期的。

什么 Selenium 函数可以以最佳实践方式帮助我解决我的问题?

【问题讨论】:

  • 你可以在while循环中使用try except块来无限期等待。

标签: python html selenium


【解决方案1】:

您可以使用 try 和 except

while true:
    try:
        WebDriverWait(browser, 30).until(EC.presence_of_element_located((By.CSS_SELECTOR, ".reply-button"))).click()
    except:
        continue
    else:
        break

【讨论】:

  • 是的,但我可能会碰巧 8 小时内没有任何购买。我应该添加然后 28800s 等待吗?我希望有一种更优雅的方式来解决这个问题
猜你喜欢
  • 2011-10-09
  • 2020-02-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-06-29
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多