【问题标题】:Check the label of a checkbox using Selenium and behave in Python使用 Selenium 检查复选框的标签并在 Python 中运行
【发布时间】: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


    【解决方案1】:

    您是否正确定位标签元素?以下代码应从标签 webelement 返回文本。

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

    TextValue  = label_element.get_attribute('textContent')
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-05-13
      • 1970-01-01
      相关资源
      最近更新 更多