在网页上找不到元素

时间:2021-07-17 19:31:17

标签: python selenium selenium-webdriver

我想在这个网站上找到所有类名为“af24c._8125e”的元素:“https://www.unibet.eu/betting/sports/filter/football/england/premier_league/matches” 但是当我运行以下代码时:

 from selenium import webdriver
import pandas as pd

PATH = 'C:\Program Files (x86)\Chromedriver.exe'
driver = webdriver.Chrome(PATH)
URL = 'https://www.unibet.eu/betting/sports/filter/football/england/premier_league/matches'
driver.implicitly_wait(5)
driver.get(URL)
driver

# Teams vinden en list van maken
Teams = driver.find_element_by_class_name('af24c._8125e')
print(Teams)

它返回一个空列表。 我试过等待更长时间来加载元素,但这没有用,我还认为它可能不起作用,因为元素在 iframe 或其他东西中,但我找不到它。

如何找到这些元素?

1 个答案:

答案 0 :(得分:1)

您使用了错误的定位器。
同样隐式等待你肯定不会得到所有的元素。
我建议在找到第一个团队元素后添加一个小睡眠,让所有其他元素加载。
此外,您应该使用 find_elements_by_class_name 而不是 find_element_by_class_name
您还需要提取元素文本,而不是打印元素本身。
试试这个:

from selenium import webdriver
import pandas as pd

PATH = 'C:\Program Files (x86)\Chromedriver.exe'
driver = webdriver.Chrome(PATH)
URL = 'https://www.unibet.eu/betting/sports/filter/football/england/premier_league/matches'
driver.implicitly_wait(5)
driver.get(URL)
driver

# Teams vinden en list van maken
#This will wait until first team element is found
driver.find_element_by_class_name('af24c')
#The sleep will ensure all the other elements are loaded
time.sleep(1)
#get all the teams elements
teams = driver.find_elements_by_class_name('af24c')
#Iterate over teams, extract each team element text
for team in teams:
   print(team.text)

相关问题