为什么报错,说film_element出错?namexpath ='//*[@id="app"]/div/div[2]/ul/li[1]/a/div/div[2]/div/div[1]/span' scorexpath ='//*[@id="app"]/div/div[2]/ul/li[1]/a/div/div[2]/div/div[2]/span[2]' for number in range(1,121): allfilmxpath = f'//*[@id="app"]/div/div[2]/ul/li[{number}]/a' film_element = driver.find_element(By.XPATH, allfilmxpath) film_element.click() filmname = driver.find_element(By.XPATH,namexpath) score = driver.find_element(By.XPATH,scorexpath) print(filmname.text) print(score.text)
时间: 2024-01-22 18:02:40 浏览: 21
这个错误可能是由于在执行 `film_element.click()` 后,页面没有及时加载,导致无法找到 `namexpath` 和 `scorexpath` 元素而报错。你可以尝试在 `film_element.click()` 后添加等待代码,等待页面加载完全后再执行后续的代码。例如可以使用 `WebDriverWait` 类来等待特定元素的出现。可以尝试修改代码如下:
```
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By
for number in range(1,121):
allfilmxpath = f'//*[@id="app"]/div/div[2]/ul/li[{number}]/a'
film_element = driver.find_element(By.XPATH, allfilmxpath)
film_element.click()
WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, namexpath)))
filmname = driver.find_element(By.XPATH, namexpath)
score = driver.find_element(By.XPATH, scorexpath)
print(filmname.text)
print(score.text)
```
这里使用了 `WebDriverWait` 类来等待 `namexpath` 元素的出现,最大等待时间为 10 秒。如果 10 秒内该元素没有出现,则会抛出 `TimeoutException` 异常。如果你想等待其他元素,可以修改 `EC.presence_of_element_located` 参数中的元素定位器。