Проверьте метку флажка с помощью Selenium и ведите себя как Python

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

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 проверять текст метки, и если да, то как мне это сделать?


person Photon    schedule 11.02.2020    source источник


Ответы (1)


Вы правильно находите элемент метки? следующий код должен вернуть текст из веб-элемента метки.

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

TextValue = label_element.text

or

TextValue  = label_element.get_attribute('textContent')
person Sureshmani Kalirajan    schedule 11.02.2020