Проверьте, имеет ли уже полученный элемент с Selenium определенный класс - PullRequest
1 голос
/ 11 мая 2019

С селеном я получаю и элемент:

element = section.find_element_by_tag_name('header')

Элемент header может иметь класс open, если он открыт (как гармошка).

Еслиэлемент имеет класс open Я ничего не делаю (потому что он уже открыт и я не хочу его закрывать), но если он не открыт, я хочу щелкнуть по нему:

 element.click()

Что яНе знаю, как я могу проверить, имеет ли извлеченный элемент (header) класс «открытый» или нет.

Ответы [ 2 ]

1 голос
/ 13 мая 2019

Чтобы вызвать click() или ничего не делать в зависимости от наличия атрибута class open , вам необходимо заключить логику в блок try-catch{} следующим образом:

try:
    section.find_element_by_xpath("//header[not(@class='open')]").click()
except NoSuchElementException:
    pass
1 голос
/ 11 мая 2019

Если я правильно понял вопрос, вы хотите проверить, равен ли класс open, ничего не делать, иначе нажмите на элемент header.

element = section.find_element_by_tag_name('header')
if 'open' not in element.get_attribute('class'):
    element.click()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...