Ошибка исключения тайм-аута Python — Selenium webdriver

#python #selenium #selenium-webdriver #web-scraping #timeoutexception

#питон #селен #selenium-веб-драйвер #соскабливание полотна #исключение timeoutexception

Вопрос:

моя цель — зайти на сайт IMDB с другого сайта и попытаться найти жанры фильмов.

Я могу сделать это, когда использую прямой Xpath кнопки IMDB на веб-сайте, который я перенаправил. driver.get("http://www.imdb.com/title/tt0118564/")

Однако, когда я делаю это в коде, который я хочу использовать для цикла, это выдает ошибку TimeoutException.

 i = 3

driver.find_element_by_xpath("/html/body/div/div[2]/div[1]/p[{}]/a".format(i)).click()
driver.find_element_by_xpath("/html/body/div/div[2]/div[1]/p[1]/a").click()
 

Что я делаю не так?

ПРИМЕЧАНИЕ: Страница IMDB жанров фильмов, которые я хочу получить: https://www.imdb.com/title/tt0118564 /

 from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
import selenium.common.exceptions as selexcept
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.common.by import By

genres0, genres1, genres2, genres3 = "","","",""

driver = webdriver.Chrome()


driver.get("https://sfy.ru/scripts") # main website


#driver.get("http://www.imdb.com/title/tt0118564/") # website for genres


i = 3

driver.find_element_by_xpath("/html/body/div/div[2]/div[1]/p[{}]/a".format(i)).click()
driver.find_element_by_xpath("/html/body/div/div[2]/div[1]/p[1]/a").click()


genres = WebDriverWait(driver, 10).until(EC.presence_of_all_elements_located((By.XPATH, "//h4[.='Genres:']/following-sibling::a")))
print(", ".join([genre.text for genre in genres]))



print(genres)
 

ОШИБКА:

 ---------------------------------------------------------------------------
TimeoutException                          Traceback (most recent call last)
<ipython-input-62-ff9c6618ff0f> in <module>
     25 
     26 
---> 27 genres1 = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//*[@id='titleStoryLine']/div[4]/a[1]"))).text
     28 genres2 = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//*[@id='titleStoryLine']/div[4]/a[2]"))).text
     29 genres3 = WebDriverWait(driver, 10).until(EC.presence_of_element_located((By.XPATH, "//*[@id='titleStoryLine']/div[4]/a[3]"))).text

~Anaconda3libsite-packagesseleniumwebdriversupportwait.py in until(self, method, message)
     78             if time.time() > end_time:
     79                 break
---> 80         raise TimeoutException(message, screen, stacktrace)
     81 
     82     def until_not(self, method, message=''):

TimeoutException: Message: