2016-11-02 81 views
2

我正在用量角器和phantomjs创建测试。量角器 - 用“邻居”查找元素

我想要做的很简单,这里是我的html代码,包含我想单击的元素。

<tr class="moo" role="foo" 
    <td class="bar" 
     <input class="toto" value="42" type="checkbox"></input> 
    </td> 
    <td class="titi" 
     <a href="/path/to/something">Test</a> 
    </td> 
</tr> 

在这里,我需要与点击复选框元素,很容易实际上是: element(by.xpath("//input[@type='checkbox']")).click();

但问题是,有许多复选框元素和它们之间的唯一区别是“一”与线文本(在这个例子中测试)发生了变化。

我的问题是:如何指定我想单击复选框“a”行中的文本是“Test”?

回答

2

使用CSS选择器找到行,然后将细胞:

element(by.cssContainingText('tr[role="foo"]', 'Test')) 
    .element(by.css('input')) 
    .click(); 

或用XPath查找使细胞与单呼:

element(by.xpath('//tr[td/a/text()="Test"]//input')) 
    .click(); 
+0

它的工作!谢谢你,你救了我许多小时的痛苦! –