【发布时间】:2020-02-11 23:50:20
【问题描述】:
我想编写一个测试来检查网站上是否显示了正确的文本。它主要工作,但我坚持检查复选框的标签。
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 是否允许检查标签的文本,如果可以,我将如何处理?
【问题讨论】:
标签: python html selenium checkbox python-behave