无法找出正确的循环

时间:2018-10-16 04:53:43

标签: python selenium

当它没有发生时,我需要帮助来重申这一点,并使它循环直到它发生。我需要这样做

driver.find_elements_by_xpath("driver.find_elements_by_xpath("//article[.//a[contains(.,'Red')]][.//a[.='Dark Green']]//a")

如果没有发生,那么我需要再次执行直到发生。

driver.get("https://www.supremenewyork.com/shop/all/sweatshirts")
items = driver.find_elements_by_xpath("//article[.//a[contains(.,'Red')]] 
[.//a[.='Dark Green']]//a")
while True:
time.sleep(1.2)
if items:
   items[0].click()
   break
else:
    driver.get("https://www.supremenewyork.com/shop/all/sweatshirts")

1 个答案:

答案 0 :(得分:0)

在硒中,我将使用WebDriverWait.until等待元素加载,而不是反复检查:

from selenium.webdriver.support.ui import WebDriverWait

wait = WebDriverWait(driver, 10)
elements = wait.until(lambda driver: driver.find_elements_by_xpath('the_xpath'))

文档(https://selenium-python.readthedocs.io/waits.html)可能也很有帮助。