因此,我正在填充元素列表,然后迭代列表中的每个元素。如何实现等待条件,让代码在找不到元素之前等待15秒?具体来说,我希望、currentprice、和title尝试并等待元素可见,而不是在遇到代码行时很难执行。
elements = driver.find_elements_by_css_selector('div.list-wrap div.item-container')
print(len(elements))
for x in range(len(elements)):
WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,'div.list-wrap div.item-container')))
elements = driver.find_elements_by_css_selector('div.list-wrap div.item-container')
currentprice = elements[x].find_element_by_css_selector('li.price-current').text
title = elements[x].find_element_by_css_selector('a.item-title').text
...我尝试了以下方法,但我得到的错误是,WebDriverWait不是元素的方法。
elements[x].WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,'li.price-current')))发布于 2020-12-24 05:27:37
你们关系很好。WebDriverWait期望一个驱动实例作为第一个参数。WebElement对象的实例中包含了驱动程序对象,并且实现了大多数WebDriver方法。
考虑到这一点,您可以创建一个新的WebDriverWait并传递您的元素而不是驱动程序。
而不是:
elements[x].WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,'li.price-current')))使用:
WebDriverWait(elements[x], 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,'li.price-current')))https://stackoverflow.com/questions/65434212
复制相似问题