更新时间:2023-11-28 17:16:52
Induce WebDriverWait
() 和 visibility_of_all_elements_located
() 和以下 CSS 选择器来获取结果中的所有元素表.
Induce WebDriverWait
() and visibility_of_all_elements_located
() and following CSS selector to get all the elements in result table.
from selenium import webdriver
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
driver=webdriver.Chrome()
driver.maximize_window()
driver.get("https://www.oddsportal.com")
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.LINK_TEXT,"BASKETBALL"))).click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.LINK_TEXT,"Europe"))).click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.LINK_TEXT,"Euroleague"))).click()
WebDriverWait(driver,10).until(EC.element_to_be_clickable((By.LINK_TEXT,"RESULTS"))).click()
#To get all the elements
allelements=WebDriverWait(driver,15).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR,"td.name.table-participant >a[href^='/basketball/europe/euroleague/']")))
for i in range(len(allelements)):
#To avoid stale exceptions
allelements = WebDriverWait(driver, 15).until(EC.visibility_of_all_elements_located((By.CSS_SELECTOR, "td.name.table-participant >a[href^='/basketball/europe/euroleague/']")))
print(allelements[i].text)
#To avoid ElementClickInterceptedException
driver.execute_script("arguments[0].click();", allelements[i])
#Perform your opearions
driver.back()