Проверьте метку флажка с помощью Selenium и ведите себя в Python - PullRequest
0 голосов
/ 11 февраля 2020

Я хочу написать тест, который проверяет, отображается ли правильный текст на веб-сайте. В основном это работает, но я застрял с проверкой метки флажка.

HTML:

<div class="checkbox">
  <label>
    <input id="remember_me" name="remember_me" tabindex="130" type="checkbox" value="y">
      " Remain logged in
      "
  </label>
</div>

Поведение:

Scenario: See the formular for log in
    Given I am on the "/login" page
    Then I should see header "Log In"
    ...
    And I should see the checkbox for "remember_me"
    And I should see label "Remain logged in"

Заголовок найден без проблем:

@then(u'I should see header "{header}"')
def step_impl(context, header):
  assert context.browser.find_element_by_xpath("//h1[contains(text(), '{}')]".format(header))

, а также сам флажок:

@then(u'I should see the checkbox for "{name}"')
def step_impl(context, name):
  assert len(context.browser.find_elements_by_xpath("//input[@type='checkbox'][@name='{}']".format(name))) > 0

Однако я не знаю, как конкретно проверить наличие ярлыка «Оставаться в системе». Все, что я пробовал, включая проверку самого текста с помощью find_text () или таким образом:

def step_impl(context, label):
  assert context.browser.find_element_by_xpath("//input[@type='checkbox' and contains(text(), '{}')]".format(name))) > 0

не работает.

Позволяет ли Selenium проверять текст метки и если да, как бы я go об этом?

1 Ответ

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

Правильно ли вы располагаете элемент метки? следующий код должен вернуть текст из метки webelement.

label_element = browser.find_element_by_xpath("//div[@class='checkbox']/label")

TextValue = label_element.text

или

TextValue  = label_element.get_attribute('textContent')
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...