首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >期望条件WebDriverWait Python问题

期望条件WebDriverWait Python问题
EN

Stack Overflow用户
提问于 2020-12-24 05:06:45
回答 1查看 317关注 0票数 1

因此,我正在填充元素列表,然后迭代列表中的每个元素。如何实现等待条件,让代码在找不到元素之前等待15秒?具体来说,我希望、currentprice、title尝试并等待元素可见,而不是在遇到代码行时很难执行。

代码语言:javascript
复制
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不是元素的方法。

代码语言:javascript
复制
elements[x].WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,'li.price-current')))
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2020-12-24 05:27:37

你们关系很好。WebDriverWait期望一个驱动实例作为第一个参数。WebElement对象的实例中包含了驱动程序对象,并且实现了大多数WebDriver方法。

考虑到这一点,您可以创建一个新的WebDriverWait并传递您的元素而不是驱动程序。

而不是:

代码语言:javascript
复制
elements[x].WebDriverWait(driver, 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,'li.price-current')))

使用:

代码语言:javascript
复制
WebDriverWait(elements[x], 20).until(EC.visibility_of_element_located((By.CSS_SELECTOR,'li.price-current')))
票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/65434212

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档