for a in range(0,500):
driver.get("https://www.vype.com/vype-dfw-fan-poll-girls-track-runner-of-the-year")
driver.implicitly_wait(30)
vote = driver.find_element_by_xpath("//span[@class='css-answer-span pds-answer-span']
[contains(.,'Dymond Wiley, Duncanville')]")
vote.click()
button=driver.find_element_by_xpath("//a[contains(@id,'pd-vote-button10551469')]")
button.click()
time.sleep(3)
print("vote "+str(a))
有时会卡在第三个或第四个循环中,错误信息是。
selenium.common.exceptions.ElementClickInterceptedException: Message: element click intercepted: Element <span class="css-answer-span pds-answer-span">...</span> is not clickable at point (603, 7). Other element would receive the click: <span id="pds-answer10551469">...</span>
你可以诱导java脚本执行器点击元素。
driver.execute_script("arguments[0].click();", vote)
诱导 WebDriverWait
()并等待 element_to_be_clickable
()这样可以减少你的时间。
for a in range(0,500):
driver.get("https://www.vype.com/vype-dfw-fan-poll-girls-track-runner-of-the-year")
vote=WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH, "//span[@class='css-answer-span pds-answer-span'][contains(.,'Dymond Wiley, Duncanville')]")))
driver.execute_script("arguments[0].click();", vote)
WebDriverWait(driver, 20).until(EC.element_to_be_clickable((By.XPATH,"//a[contains(@id,'pd-vote-button')]"))).click()
print("vote "+str(a))
导入以下库。
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By