【问题标题】:Q:how to use a specific element to locate anothor equative element by protractor?Q:量角器如何使用特定元素定位另一个等值元素?
【发布时间】:2018-01-30 17:57:29
【问题描述】:

我是量角器的新蜜蜂。 这是代码:

    // 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>

我想单击第二个复选框,并且第一行并不总是存在,所以我不能使用 $$('.checkbox').get(1) 来获取它,所以我试图找到第一个复选框有 [title = "flower"],那么我写这个:

var a = $$('[title="flower"]').get(0).getWebElement();
var b = a.getDriver().findElement(by.css('.checkbox'));
b.click();

但是当过程完成时,第一行复选框被点击, 怎么了?我该如何解决?

【问题讨论】:

    标签: protractor


    【解决方案1】:

    试试$$('[title="flower"]').get(0).$('.checkbox').click()

    【讨论】:

      【解决方案2】:

      首先:你为什么使用.getWebElement().getDriver()

      你的错误信息是什么?

      @Vlad 的解决方案可以,但checkbox 不是flower 的祖先。

      你需要获取tr,检查是否包含title="flower",如果有,点击checkboxcheckbox

      我不会为您编写代码,但您可以查看我的答案:https://stackoverflow.com/a/48020146/6331748 并根据您的需要调整代码。

      【讨论】:

        【解决方案3】:

        选项 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'))
        

        【讨论】:

          猜你喜欢
          • 2015-09-12
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-02
          • 2010-09-14
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多