【问题标题】:Selenium-Python: How do I make my WebDriverWait a few seconds before reloading a page?Selenium-Python:如何让我的 WebDriverWait 在重新加载页面之前等待几秒钟?
【发布时间】:2016-02-24 19:49:44
【问题描述】:

所以我有一段代码检查网页的一部分以查看状态是否已更改以进入脚本的下一步。如果没有,它会刷新页面,理想情况下,我希望脚本在此网页上等待大约 5-10 秒,然后再次刷新页面。这是我当前的循环:

orderElem = driver.find_element(By.CSS_SELECTOR, "dd.Production.Status")

while(orderElem.text != "Output Complete"):
        WebDriverWait(driver, 10)
        driver.refresh()
        WebDriverWait(driver, 5).until(
            EC.visibility_of_element_located((By.CSS_SELECTOR, "dd.Production.Status"))
        )
        orderElem = driver.find_element(By.CSS_SELECTOR, "dd.Production.Status")

【问题讨论】:

  • 你在寻找类似time.sleep()的东西吗?

标签: python selenium selenium-webdriver automation qa


【解决方案1】:

您可以使用time.sleep(10) 而不是WebDriverWait 明确地等待。

您似乎正在尝试每 10 秒刷新一次页面,直到 orderElem.text == 'Output Complete',在这种情况下:

def until_func(driver):
    driver.refresh()
    elem = driver.find_element_by_css_selector("dd.Production.Status")
    if elem.is_displayed() and elem.text == 'Output Complete':
        return elem
orderElem = WebDriverWait(driver, timeout=60, poll_frequency=10).until(until_func)

这将每 10 秒刷新一次页面,检查所需元素是否可见并具有正确的文本,并在满足这些条件时返回该元素。

【讨论】:

  • 谢谢。这个函数和 time.sleep(10) 一样完美。
猜你喜欢
  • 2014-12-04
  • 2012-10-03
  • 1970-01-01
  • 2017-07-20
  • 1970-01-01
  • 2021-07-07
  • 2022-06-15
  • 2017-03-27
  • 1970-01-01
相关资源
最近更新 更多