Python Selenium:等待不是等待

我正在设计一个网络抓取工具。在某些时候,我需要它等待大约 10 秒,然后再跳转到下一个操作以解决互联网连接问题。我想要一个简单的隐式等待。


driver.get('MY WEBSITE')


driver.implicitly_wait(10)


menu = driver.find_element_by_link_text("Export")

menu2 = driver.find_element_by_xpath('//td[text()="Data"]')


actions = ActionChains(driver)

actions.move_to_element(menu)

actions.click(menu)

actions.move_to_element(menu2)

actions.click(menu2)

actions.perform() 

唯一的问题是:它没有等待。我什至尝试将 20 秒或更多秒作为 implicitly_wait 参数,以便完全确定并且没有变化。就是打开网站直接去搜索这两个元素。谁能解释一下?


慕妹3146593
浏览 131回答 2
2回答

萧十郎

从文档:隐式等待告诉 WebDriver 在尝试查找任何不立即可用的元素时轮询 DOM 一段时间。默认设置为 0。设置后,隐式等待设置为 WebDriver 对象的生命周期。因此,如果该元素立即可用,它就不会等待。

回首忆惘然

尝试使用WebDriverWait:E.gfrom selenium import webdriverfrom selenium.webdriver.common.by import Byfrom selenium.webdriver.support.ui import WebDriverWaitfrom selenium.webdriver.support import expected_conditions as ECdriver = webdriver.Firefox()driver.get("http://somedomain/url_that_delays_loading")try:    element = WebDriverWait(driver, 10).until(        EC.presence_of_element_located((By.ID, "myDynamicElement"))    )finally:    driver.quit()
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Python