Очистить интерактивную ссылку или xpath

#python #selenium #xpath #web-scraping #linked-list

#питон #селен #xpath #очистка веб-страниц #связанный список #python #selenium

Вопрос:

У меня есть это html-дерево в веб-приложении: введите описание изображения здесь

Я очистил весь текст от названий всех лиг.

Но мне также нужен XPATH или любой индикатор, чтобы я мог сообщить selenium: если я выберу, например, EFL League Two (ENG 4) в своем графическом интерфейсе, например, из выпадающего меню, затем используйте соответствующий xpath, чтобы выбрать правильную лигу в веб-приложении.

Я понятия не имею, как я мог бы извлечь XPATCH из этого дерева или какое-либо другое решение, которое можно было бы использовать для моего сценария.

Есть идеи, как я мог бы это исправить?

Если я попытаюсь извлечь ‘href’, он напечатает просто «None».

Это мой код на данный момент:

 def scrape_test():

    leagues = []
    #click the dropdown menue to open the folder with all the leagues
    league_dropdown_menu = driver.find_element_by_xpath('/html/body/main/section/section/div[2]/div/div[2]/div/div[1]/div[1]/div[7]/div')
    league_dropdown_menu.click()
    time.sleep(1)
    
#get all league names as text
    scrape_leagues = driver.find_elements_by_xpath("//li[@class='with-icon' and contains(text(), '')]")
    for league in scrape_leagues:
        leagues.append(league.text)
    print('n')

# HERE I NEED HELP! - I try to get a link/xpath for each corresponding league to use later with selenium
    scrape_leagues_xpath = driver.find_elements_by_xpath("//li[@class='with-icon']")
    for xpath in scrape_leagues_xpath:
        leagues.append(xpath.get_attribute('xpath')) #neither xpath, text, href is working here

    print(leagues)
  

Комментарии:

1. добавьте html как часть публикации, а не изображения

Ответ №1:

li у узла нет text , href или xpath (я не думаю, что это допустимый атрибут HTML). Вы можете очистить и проанализировать @style .

Попробуйте использовать этот подход для извлечения URL-адреса фонового изображения

 leagues.append(xpath.get_attribute('style').strip('background-image:url("').rstrip('");'))
  

Комментарии:

1. именно то, что мне было нужно! Спасибо!