【发布时间】:2018-10-17 22:35:32
【问题描述】:
我经常使用 selenium,但没有机会使用 WebDriverWait。现在我需要单击一个后退按钮,虽然它似乎可以立即使用,但它有时一定不是一瞬间。我可以用 time.sleep(1) 把它放在一个循环中,它偶尔会循环一次。我可以忍受这一点,但我认为这是实现 WebDriverWait 的绝佳机会。 这有效:
browser.find_element_by_xpath('//div[@onclick="backToResults();"]')
除了偶尔的 NoSuchElementException...
这行不通,它只会运行 3 秒并超时(无论我尝试多长时间,它都不会返回成功):
elem = WebDriverWait(browser, 3).until(ec.presence_of_element_located((By.XPATH, '//div[@onclick="backToResults();')))
...但是没有等待的相同 ec 调用确实返回元素,所以等待应该工作:
ec.presence_of_element_located((By.XPATH, '//div[@onclick="backToResults();'))
所以,不是说该元素不存在并且至少在一秒左右内可访问,而是 WebDriverWait 没有从积极的 EC 调用中返回?
【问题讨论】:
标签: python selenium selenium-webdriver webdriver webdriverwait