Я хочу написать тест, который проверяет, отображается ли правильный текст на веб-сайте. В основном это работает, но я застрял с проверкой метки флажка.
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 об этом?