Как написать локатор для этого элемента

#python-2.7 #selenium #pycharm

#python-2.7 #селен #pycharm

Вопрос:

Я запускаю автоматические тесты пользовательского интерфейса и хочу убедиться, что эта кнопка отключена, но я не уверен, как создать локатор для этого элемента :

Источник элемента

 <a data-hook="loginbutton" 
   class="mb-button mb-button--wider mb-button--primary 
          mb-button--disabled mb-button" tabindex="0">Login</a>
  

Ранее я использовал data-hook атрибут для кнопки, но для кнопки есть только один перехват данных, даже если он включен или отключен.

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

1. Обновите вопрос с помощью соответствующего HTML, кода проб и ошибок, с которыми вы столкнулись.

2. Пожалуйста, поделитесь полным DOM элемента

3. локатор css a[data-hook="loginbutton"]

Ответ №1:

Селектор CSS лучше всего подойдет, я думаю, вы могли бы использовать:

find_element_by_css_selector(a[".mb-button.mb-button--wider.mb-button--primary.mb-button--disabled.mb-button"])

Или это:

find_element_by_css_selector(a[data-hook="loginbutton"])

Первый в основном использует классы, поэтому он может быть короче, зависит от того, насколько уникальны классы элемента в Сети

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

1. Спасибо RegCent. Я попробую первое предложение, второе предложение не будет работать, поскольку используется один и тот же перехватчик данных, независимо от того, включена или отключена кнопка

2. Хорошо, если это сработает, пожалуйста, отметьте это как ответ, в противном случае дайте мне знать, и я постараюсь придумать что-нибудь еще

Ответ №2:

Это то, что я в итоге сделал —

     def login_button_disabled(self):
        self.login_button_disabled = self.browser.find_element_by_class_name("mb-button--disabled")
        if self.login_button_disabled.is_displayed():
            print("Login Button Disabled")
        else:
            print("Login Button Enabled")
  

Ответ №3:

Вы можете использовать этот Xpath для вышеупомянутого элемента. xpath = //a[содержит(text(),’Login’)]