【问题标题】:Selecting element with multiple classes in Capybara在 Capybara 中选择具有多个类的元素
【发布时间】:2014-07-11 01:29:52
【问题描述】:

我正在使用 Selenium 在 Capybara 中编写自动化代码。 我的 HTML 中有以下元素,我想在 Capybara 中单击此元素。

<a href="#" class="classA classB">click me</a>

目前,工作方式类似于以下。

find('.classA', :text=>"click me").click

但我想像这样从两个类的名称中选择元素

find('a.classA.classB').click
click_on('a.classA.classB')

我知道我们可以触发 javascript 代码,但这并不聪明。

page.execute_script('$("a.classA.classB").click()')

【问题讨论】:

    标签: selenium capybara


    【解决方案1】:

    您可以通过xpath搜索元素

    根据您的示例,似乎以下应该可以工作

    //div[contains(@class, 'classA') and contains(@class, 'classB')]
    

    你也可以使用css

    (:css, ".classA.classB")
    

    【讨论】:

    • 感谢您的回复,但仍然遇到同样的错误。 Capybara::ElementNotFound: 找不到链接或按钮"//*[contains(concat('',@class,''),'classA') and (contains(concat('',@class,''), 'classB')) ]"
    • @Ryo,进行了编辑,试试看。如果这不起作用,我们可以尝试其他方法。
    • 谢谢!第二个成功了,实际上我确实喜欢这个 find(:css, ".classA.classB", :visible=>true).click
    • @Ryo,太好了!!以防万一你有时间并且和我一样好奇,你能检查一下第一个选项吗?
    猜你喜欢
    • 2011-11-30
    • 2013-08-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-08
    • 1970-01-01
    • 2016-06-01
    • 2017-12-21
    相关资源
    最近更新 更多