如何使用python(Selenium)刷新页面直到元素可用?
我想设计一个代码,它倾向于刷新页面,直到特定元素在使用selenium的网页上可见为止。我设计了以下代码,但它给了我一个错误 错误:selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“方法”:“部分链接文本”,“选择器”:“立即购买”} 代码:如何使用python(Selenium)刷新页面直到元素可用?,python,selenium-webdriver,selenium-chromedriver,Python,Selenium Webdriver,Selenium Chromedriver,我想设计一个代码,它倾向于刷新页面,直到特定元素在使用selenium的网页上可见为止。我设计了以下代码,但它给了我一个错误 错误:selenium.common.exceptions.NoSuchElementException:消息:没有这样的元素:无法找到元素:{“方法”:“部分链接文本”,“选择器”:“立即购买”} 代码: 有人能帮忙吗?您应该给一些时间让元素显示出来。尝试使用等待: from selenium.webdriver.support.ui import WebDriverW
有人能帮忙吗?您应该给一些时间让元素显示出来。尝试使用等待:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
while True:
wait = WebDriverWait(driver, 1)
wait.until(EC.element_to_be_clickable(driver.find_element_by_partial_link_text('BUY NOW'))
if driver.find_element_by_partial_link_text('BUY NOW'):
break
driver.refresh()
如果selenium找不到单个元素,则会引发异常。 因此,您的循环(虽然为True)不可能是成功的循环,代码“if driver.find_element_by_partial_link_text('BUY NOW')”可能会破坏脚本 有两种方法可以做到这一点:
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
while True:
wait = WebDriverWait(driver, 1)
wait.until(EC.element_to_be_clickable(driver.find_element_by_partial_link_text('BUY NOW'))
if driver.find_element_by_partial_link_text('BUY NOW'):
break
driver.refresh()
from selenium import webdriver
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.ui import WebDriverWait
driver = webdriver.Chrome()
wait = WebDriverWait(driver, 30)
wait.until(EC.presence_of_element_located(("partial link text","BUY NOW")))
driver.refresh()
from selenium.webdriver.common.by import By
while True:
if len(driver.find_elements(By.PARTIAL_LINK_TEXT, 'BUY NOW')) > 0:
break
driver.refresh()
buy = driver.find_element_by_partial_link_text('BUY NOW')
buy.click()