【问题标题】:Click on html element which has specific text in Cucumber单击在 Cucumber 中具有特定文本的 html 元素
【发布时间】:2014-05-20 12:54:08
【问题描述】:

我在html中有多个这样的标签元素

<label class="article-list">
    first
</label>
<label class="article-list">
    secound
</label>
<label class="article-list">
    Idividual
</label>

在场景中我有这样的事情; "用户点击"第一个"选项"

现在我需要点击其中包含“first”文本的标签元素。我该怎么做?

我知道如何使用类和其他东西获取元素,但不是这样。

【问题讨论】:

  • 附带说明,使用另一个标签可能是个好主意。我认为在这里使用&lt;label&gt; 没有任何附加价值...
  • 这是我得到的结构,我无法更改它

标签: jquery html cucumber capybara


【解决方案1】:

查找元素时,可以使用:text选项指定元素的文本。

点击“第一个”标签:

find('label.article-list', :text => 'first').click

点击“第二个”标签:

find('label.article-list', :text => 'secound').click

当然,Cucumber 步骤要传递指定的文本:

When /User click "([^"]+)" option/ do |option|
  find('label.article-list', :text => option).click
end

【讨论】:

    【解决方案2】:

    您可以使用:contains 来获取具有给定文本的元素

    Live Demo

    $('label').click(function(){
       alert(this.className); 
    });
    
    $('label:contains(first)').click();
    

    描述:选择所有包含指定文本的元素。

    【讨论】:

    • 我可以在黄瓜中使用 JQuery 吗?
    • And(/^User click "([^"]*)" option$/) do |arg| $('label:contains(arg)').trigger('click') end这样好吗?
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-01-28
    • 1970-01-01
    • 1970-01-01
    • 2014-04-27
    • 2017-08-15
    • 1970-01-01
    • 2016-02-01
    相关资源
    最近更新 更多