刷新页面硒
Refresh page selenium
嘿 ^^ 我正在编写一个 selenium 程序,但我被困在一个地方。该程序旨在为我儿子的生日在法国网站上购买 1 张显卡。好了,我已经对所有内容进行了编码,但现在我担心的是该显卡的网页仅在有货时可用,因此程序无法通过 xpath“添加到购物车”找到按钮。于是就有了做一个循环的想法,这样只要“加入购物车”按钮不可用,程序就把显卡的页面打开到无穷大(像这样有可用时出现按钮,剩下的已经完成了)。但是,我不知道如何实现这个条件,这个循环,你能帮我吗?
我在使用 webdriver
的 selenium
addtocart = driver.find_elements_by_xpath('somexpath')
while (not addtocart):
time.sleep(10) # wait for 10 seconds
driver.refresh()
addtocart = driver.find_elements_by_xpath('somexpath') # refind to avoid stale element exception
addtocart[0].click()
只需使用查找元素并检查返回的数组长度是否为零
你可以像这样无限循环:
解释 :
虽然 True 基本上是一个无限循环,因为我们试图找到
在此处添加到购物车 xpath 带有 xpath 的按钮并使用 find_elements
这样,如果找到它,那么显然尺寸将大于 0,然后继续并单击它但如果没有,则转到 else 块并等待 60 秒(您可以在这里有任何时间),然后刷新页面并重新执行。
while True:
try:
if len(driver.find_elements(By.XPATH, "Add to cart xpath here")) > 0:
driver.find_element(By.XPATH, "Add to cart xpath here").click()
break
else:
sleep(60)
driver.refresh()
except:
pass
嘿 ^^ 我正在编写一个 selenium 程序,但我被困在一个地方。该程序旨在为我儿子的生日在法国网站上购买 1 张显卡。好了,我已经对所有内容进行了编码,但现在我担心的是该显卡的网页仅在有货时可用,因此程序无法通过 xpath“添加到购物车”找到按钮。于是就有了做一个循环的想法,这样只要“加入购物车”按钮不可用,程序就把显卡的页面打开到无穷大(像这样有可用时出现按钮,剩下的已经完成了)。但是,我不知道如何实现这个条件,这个循环,你能帮我吗? 我在使用 webdriver
的 seleniumaddtocart = driver.find_elements_by_xpath('somexpath')
while (not addtocart):
time.sleep(10) # wait for 10 seconds
driver.refresh()
addtocart = driver.find_elements_by_xpath('somexpath') # refind to avoid stale element exception
addtocart[0].click()
只需使用查找元素并检查返回的数组长度是否为零
你可以像这样无限循环:
解释 :
虽然 True 基本上是一个无限循环,因为我们试图找到
在此处添加到购物车 xpath 带有 xpath 的按钮并使用 find_elements
这样,如果找到它,那么显然尺寸将大于 0,然后继续并单击它但如果没有,则转到 else 块并等待 60 秒(您可以在这里有任何时间),然后刷新页面并重新执行。
while True:
try:
if len(driver.find_elements(By.XPATH, "Add to cart xpath here")) > 0:
driver.find_element(By.XPATH, "Add to cart xpath here").click()
break
else:
sleep(60)
driver.refresh()
except:
pass