Нажмите кнопку href без класса, идентификатора или текста ссылки с помощью Selenium - PullRequest
0 голосов
/ 30 мая 2020

Я просматриваю веб-страницу: www.ogimet.com и хочу нажать кнопку href.

Это код html:

<a href="/sondc.phtml"><b>S</b>ondeos por territorios</a>

Как я могу щелкнуть это кнопка? По возможности избегайте driver.find_element_by_xpath()

Ответы [ 2 ]

1 голос
/ 30 мая 2020

В предоставленной вами ссылке есть текст ссылки, который можно использовать для ее выбора, вам просто нужно удалить полужирные теги, поэтому Sondeos por territorios вместо <b>S</b>ondeos por territorios.

Использование driver.find_element_by_link_text:

link = driver.find_element_by_link_text('Sondeos por territorios')
1 голос
/ 30 мая 2020

Вот как бы я это сделал: я создал функцию многократного использования, которая возвращает первый элемент по тегу и соответствующим атрибутам.

def getElementByTagAndAttributes(driver, tag, **kwargs):
    for element in driver.find_elements_by_tag_name(tag):
        for key, value in kwargs.items():
            attribute = element.get_attribute(key)
            if attribute != value:
                break
        else:
            return element

getElementByTagAndAttributes(driver, "a", href="/sondc.phtml").click()
...