我是一个新的量角器蜜蜂。 这是代码:
// fist line
<table class="table">
<tbody class="table-body">
<tr class="table-tree" ng-repeat="items in page">
<td class="checkbox" >
<input type="checkbox">
<td class="node-name">
<span class="node-icon" title="tree">
// second line
<tr class="table-tree" ng-repeat="items in page">
<td class="checkbox" >
<input type="checkbox">
<td class="node-name">
<span class="node-icon" title="flower">
// third line
<tr class="table-tree" ng-repeat="items in page">
<td class="checkbox" >
<input type="checkbox">
<td class="node-name">
<span class="node-icon" title="flower">
</tbody>
</table>
我想点击sencond复选框,第一行并不总是存在,所以我不能使用$$('。复选框')。得到(1)得到它,所以我试图找到第一个复选框有[title =“flower”],然后我写这个:
var a = $$('[title="flower"]').get(0).getWebElement();
var b = a.getDriver().findElement(by.css('.checkbox'));
b.click();
但是当流程结束时,第一行复选框就是点击, 什么是错的?我该如何解决?
答案 0 :(得分:0)
尝试$$('[title="flower"]').get(0).$('.checkbox').click()
答案 1 :(得分:0)
首先:为什么要使用.getWebElement()
和.getDriver()
?
你的错误信息是什么?
@ Vlad的解决方案没问题,但checkbox
不是flower
的祖先。
您需要获取tr
,检查其是否包含title="flower"
,如果是,请点击checkbox
的{{1}}。
我不会为您编写代码,但您可以查看我的答案:https://stackoverflow.com/a/48020146/6331748并根据您的需要调整代码。
答案 2 :(得分:0)
选项1)使用XPath
element(by.xpath('//tr[td/span[@title="flower"]]/td[1]/input')).click();
选项2)使用element()链
// find the `SPAN` which title is flowser <br>
element(by.css('span[title="flower"]')) <br>
// find parent of `SPAN` until `TR` <br>
.element(by.xpath('./../..')) <br>
// find the `input` inside the first `TD` of above `TR` <br>
.element(by.xpath('./td[1]/input'))