目前我使用隐式等待来定位元素,然后再对它们执行任何操作。查看隐式等待示例:
WebDriverWait(browser,10).until(EC.presence_of_element_located(By.XPATH(('xpath')))
这在处理单个元素时效果很好。但是,如果 xpath 与多个元素相关,则 EC.presence_of_element_located()
似乎会超时。我的问题是,如何隐式等待多个元素?
澄清:
单个元素-
WebDriverWait(browser,10).until(EC.presence_of_element_located(By.XPATH(('xpath')))
browser.find_element_by_xpath('xpath')
多元素-
??
browser.find_elements_by_xpath('xpath')
注意:注意在多元素实例中使用 find_elements_by_xpath()
而不是使用 find_element_by_xpath()
最佳答案
我迟到了两年多,但我想发布这个,以防有人像我一样在这里用谷歌搜索。你可以使用
WebDriverWait(browser, 10).until(
EC.presence_of_all_elements_located((By.XPATH, 'xpath'))
)
这将返回所有这些。你不需要做
browser.find_element_by_xpath('xpath')
在您显式等待之后,因为 WebDriverWait(browser,10).until(...)
将返回您正在等待的元素。
关于Python - Selenium - 隐式等待多个元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22710154/