1

Я таблица структурированного нижеПолучить элемент, используя текст в строке транспортире от вложенного повторителя

<table class="table"> 
    <thead> 
    <tr> 
     <th class="checkbox-column"></th> 
     <th class="main-column main-column--checkbox">Name</th> 
    </tr> 
    </thead> 
    <tbody ng-repeat="(a, b) in tests" class="ng-scope" style=""> 
    <tr class="panel__sub-header"> 
     <td> 
     <input name="item-checkbox" ng-click="toggleSelectAll(a)" type="checkbox"> 
     </td> 
     <td colspan="4"> 
     <h4 class="ng-binding">ROW2</h4> 
     </td> 
    </tr> 
    <tr ng-repeat="test in testData" ng-class-odd="'odd'" ng-class-even="'even'" class="ng-scope odd" style=""> 
     <td class="checkbox-column"><input name="item-checkbox" ng-click="checkFunction()" type="checkbox"></td> 
     <td class="main-column"> 
     <a ng-href="#" class="ng-binding" href="#">test.name</a> 
     </td> 
    </tr> 
    <tr ng-repeat="test in testData" ng-class-odd="'odd'" ng-class-even="'even'" class="ng-scope odd" style=""> 
     <td class="checkbox-column"><input name="item-checkbox" ng-click="checkFunction()" type="checkbox"></td> 
     <td class="main-column"> 
     <a ng-href="#" class="ng-binding" href="#">test.data</a> 
     </td> 
    </tr> 
    </tbody> 
    <tbody ng-repeat="(a, b) in tests" class="ng-scope" style=""> 
    <tr class="panel__sub-header"> 
     <td> 
     <input name="item-checkbox" ng-click="toggleSelectAll(a)" type="checkbox"> 
     </td> 
     <td colspan="4"> 
     <h4 class="ng-binding">ROW1</h4> 
     </td> 
    </tr> 
    <tr ng-repeat="test in testData" ng-class-odd="'odd'" ng-class-even="'even'" class="ng-scope odd" style=""> 
     <td class="checkbox-column"><input name="item-checkbox" ng-click="checkFunction()" type="checkbox"></td> 
     <td class="main-column"> 
     <a ng-href="#" class="ng-binding" href="#">test.name</a> 
     </td> 
    </tr> 
    <tr ng-repeat="test in testData" ng-class-odd="'odd'" ng-class-even="'even'" class="ng-scope odd" style=""> 
     <td class="checkbox-column"><input name="item-checkbox" ng-click="checkFunction()" type="checkbox"></td> 
     <td class="main-column"> 
      <a ng-href="#" class="ng-binding" href="#">test.data</a> 
     </td> 
    </tr> 
    </tbody> 
</table> 

Я получил корневой элемент таблицы, используя приведенный ниже ответ https://stackoverflow.com/a/41129924/2833311

Но не в получить вложенные элементы ретранслятора.

getSpecificNestedCell: function(tableObject, rowText, nestedTableObj, rowText1, columnCss) { 
    var ele = element.all(by.repeater(tableObject)).filter(function(rowElement){ 
     return rowElement.element(by.css("td h4")).getText().then(function(text){ 
     return text.indexOf(rowText) !== -1; 
     }); 
    }).first(); 

    ele = ele.all(by.repeater(nestedTableObj)).filter(function(rowElement1){ 
     return rowElement1.element(by.linkText(rowText1)).getText().then(function(text1){ 
      return text1.indexOf(rowText1) !== -1; 
     }); 
     }).first().element(by.css('[' + columnCss + ']')); 

    findObject.waitUntilReady(ele); 
    return ele; } 

Где, как,

  1. tableObject ==> (а, б) в тестах
  2. rowText ==> ROW2
  3. nestedTableObj ==> Испытание в TestData
  4. rowText1 = => test.data
  5. columnCss ==> ng-click = "checkFunction()"

Используя приведенный выше код, который я мог бы в состоянии получить элемент, если он имеет одну строку внутри вложенные повторяются, но он был не в состоянии получить элемент, когда вложенная повторитель имеет несколько строк

+0

Почему вы используете тег тела в два раза? –

+0

Это был дизайн команды разработчиков – Prabhu

+0

В чем разница между тегом первого тега и тегом второго тега? оба они одинаковы. то почему вы хотите? –

ответ

2

это должно дать вам то, что вы хотите, я считаю,

function getSpecificNestedCell(tableObject, rowText, nestedTableObj, rowText1, columnCss) { 
    return element(by.cssContainingText('tbody[ng-repeat="' + tableObject + '"]', rowText)) 
    .element(by.cssContainingText('tr[ng-repeat="' + nestedTableObj + '"]', rowText1)) 
    .element(by.css('[' + columnCss + ']')); 
} 

Здесь селектор я работал enter image description here

+0

Awesome. Ты спас мой день! – Prabhu