使用 Selenium 检查复选框的标签并在 Python 中运行
Check the label of a checkbox using Selenium and behave in 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"
发现 header 没有问题:
@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
但是我不知道如何专门检查标签 "Remain logged in"。我尝试过的任何方法,包括使用 find_text() 或以下方式检查文本本身:
def step_impl(context, label):
assert context.browser.find_element_by_xpath("//input[@type='checkbox' and contains(text(), '{}')]".format(name))) > 0
没有工作。
Selenium 是否允许检查标签的文本?如果是,我将如何处理?
您是否正确定位标签元素?以下代码应该 return 来自标签 webelement 的文本。
label_element = browser.find_element_by_xpath("//div[@class='checkbox']/label")
TextValue = label_element.text
或
TextValue = label_element.get_attribute('textContent')
我想编写一个测试来检查网站上显示的文本是否正确。它主要工作,但我坚持检查复选框的标签。
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"
发现 header 没有问题:
@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
但是我不知道如何专门检查标签 "Remain logged in"。我尝试过的任何方法,包括使用 find_text() 或以下方式检查文本本身:
def step_impl(context, label):
assert context.browser.find_element_by_xpath("//input[@type='checkbox' and contains(text(), '{}')]".format(name))) > 0
没有工作。
Selenium 是否允许检查标签的文本?如果是,我将如何处理?
您是否正确定位标签元素?以下代码应该 return 来自标签 webelement 的文本。
label_element = browser.find_element_by_xpath("//div[@class='checkbox']/label")
TextValue = label_element.text
或
TextValue = label_element.get_attribute('textContent')