2013-04-05 49 views
8

我正在用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()') 

回答

12

您可以通过xpath

根据您的实例搜索一个元素,看起来像下面应该工作

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

你也可以使用css

(:css, ".classA.classB") 
+0

谢谢你你的回应,但仍然得到相同的错误。 (包括(concat('',@ class,''),'classA')和(contains(concat('',@ class,'') ),'classB'))​​]“ – Ryo 2013-04-05 15:22:22

+0

@Ryo,做了一个编辑,试试看。如果那不起作用,我们可以尝试一些其他的东西。 – Amey 2013-04-05 15:29:57

+0

谢谢!第二个工作,其实我喜欢这个发现(:css,“.classA.classB”,:visible => true).click – Ryo 2013-04-05 16:05:13

相关问题