Как найти атрибут href, используя VBA / selenium / chrome? - PullRequest
0 голосов
/ 10 февраля 2020

Я довольно новичок в изучении веб-страниц и начал с Selenium в VBA / Excel, используя Chrome. Моими целевыми элементами являются пункты меню.

На некоторых веб-сайтах я могу найти элементы, но не могу получить их "href". Вот сайт назначения . Я хочу "href" пунктов меню в правой части страницы.

Это то, что я пробовал:

    ' geting the menus, working well:
        Set mnus = bot1.FindElementsByClass("topmenu") 

        MenuCounter = 0
        For Each mnu In mnus
     'getting the href, fails
            lnk = mnu.Attribute("href")

Я также пробовал другие способы, но безуспешно.

Это снимок экрана с проверкой:
enter image description here

Обратите внимание, что мне нужен не только href для этого указанного c элемента ( чей href это "искусство"). Я также хочу получить список других эквивалентных пунктов меню (кроме первого пункта).

1 Ответ

1 голос
/ 11 февраля 2020

Значение href находится внутри тега привязки. Не является элементом li. Вам необходимо назначить тег привязки. Используйте следующий селектор css.

Set mnus = bot1.FindElementsByCssSelector("li.topmenu >a[href]")    
MenuCounter = 0
For Each mnu In mnus
    lnk = mnu.Attribute("href")

Или Чтобы получить ссылку на все меню, попробуйте это.

Чтобы получить все меню ссылки

Set mnus = bot1.FindElementsByCssSelector("ul.topmenu a[href]")
MenuCounter = 0
For Each mnu In mnus
    lnk = mnu.Attribute("href")
...