Python Selenium xpath ul / li?

1 Antwort

Das Problem bei deinem Programm ist, dass die ul noch nicht geladen ist (also noch nicht auf das dropdown menü geklickt).

Man kann den Fehler beheben, wenn man zuerst auf das Dropdown Menü klickt und erst dann den Content von der ul rausliest.

Also eine Möglichkeit zu deinem Problem:

from selenium import webdriver 
from selenium.webdriver.common.by import By

url= 'https://www.westernwelt.com/Cowboyhut-3X-von-Resistol-aus-Filz_1'

driver = webdriver.Chrome(executable_path = r'selenium_webdriver\chromedriver.exe') 
driver.get(url)

while True:
    try:
        driver.find_elements(By.XPATH,"//button[contains(@class, 'btn dropdown-toggle btn-light')]")[1].click()
        break
    except Exception:
        pass

text_contents = [el.text for el in driver.find_elements(By.XPATH,"//ul[contains(@class, 'dropdown-menu inner show')]")]
for text in text_contents:
    print(text)

Wenn du noch weitere Fragen hast, dann kannst du mir sie gerne stellen.

LG

Woher ich das weiß:Hobby