Используя selenium xpath, чтобы щелкнуть ссылку href, не работает

я пытаюсь получить xpath этого, чтобы щелкнуть ссылку href

<a href = "/film/ah-fei-jing-juen/" class = "frame has-menu" data-original-title = "Days of Being Wild (1990)">

мой код до сих пор

driver.find_element(By.XPATH, "/html/body/div[2]/div/div/section/ul/li[1]/div/div/a").click

и я также пытался использовать элемент поиска по идентификатору. оцените любую помощь спасибо!

🤔 А знаете ли вы, что...
Python популярен в машинном обучении и искусственном интеллекте.


63
2

Ответы:

Решено

Используйте это выражение XPATH:

(//ul[contains(@class,'poster-list -p70 -grid film-list clear')]//following::span[@class='overlay'])[1]

Примечание. В приведенном выше выражении в конце [1] указан первый фильм слева вверху. Если вы хотите найти второй фильм (элемент), просто измените его на [2] и так далее.

Полный рабочий код:

driver = webdriver.Chrome()
driver.maximize_window()
driver.get("https://letterboxd.com/a2vre/films/by/rated-date/")
wait = WebDriverWait(driver, 10)
element = wait.until(EC.element_to_be_clickable((By.XPATH, "(//ul[contains(@class,'poster-list -p70 -grid film-list clear')]//following::span[@class='overlay'])[1]"))).click()

Импорт:

from selenium.webdriver.common.by import By
from selenium.webdriver.support import expected_conditions as EC
from selenium.webdriver.support.wait import WebDriverWait

Чтобы найти элемент с помощью href, вы можете попробовать этот xpath:

driver.find_element(By.XPATH, "//a[@href='/film/ah-fei-jing-juen/']").click