2015-03-02 47 views
2

我在HTML相當大的compelx表,我需要點擊第一行:點擊列 - 量角器

<div class="ui-grid-canvas"> //this is whole table 
<div ng-repeat="(rowRenderIndex, row) in rowContainer.renderedRows track by $index" class="ui-grid-row ng-scope" ng-style="containerCtrl.rowStyle(rowRenderIndex)" ng-class="{'ui-grid-row-selected': row.isSelected}" style="margin-top: 0px;"> //this is one line 
    <div ui-grid-row="row" row-render-index="rowRenderIndex" class="ng-isolate-scope"> //this is blanked part (740x0px) 
    <div ng-repeat="(colRenderIndex, col) in colContainer.renderedColumns track by col.colDef.name" class="ui-grid-cell ng-scope ui-grid-col0 ui-grid-row-header-cell" ng-class="{ 'ui-grid-row-header-cell': col.isRowHeader }" ui-grid-cell=""> 
    <div class="ui-grid-disable-selection ng-scope"> //stil first column 
     <div class="ui-grid-cell-contents"> //stil first column 
     <div class="ui-grid-selection-row-header-buttons ui-grid-icon-ok ng-scope" ng-class="{'ui-grid-row-selected': row.isSelected}" ng-click="selectButtonClick(row, $event)">&nbsp;</div> //clickable part of first element. 

,因爲它看起來像這樣我需要點擊行號20,21,22在這裏有人能幫助我嗎?

我嘗試的東西,如:

element(by.css('.ui-grid-canvas').row(22)).element(by.css('[ng-click="selectButtonClick(row, $event)"]')).click(); 

,但我得到的錯誤:

r(".ui-grid-canvas") has no method 'row' 

請是有人在這裏誰可以幫我嗎?

編輯: 屏幕代碼: enter image description here

回答

2

使用element.all()by.repeater()

var scrollIntoView = function() { 
    arguments[0].scrollIntoView(); 
} 

element.all(by.repeater('(rowRenderIndex, row) in rowContainer.renderedRows')).then(function(arr) { 
    var row = arr[20]; 
    browser.executeScript(scrollIntoView, row.getWebElement()).then(function() { 
     row.all(by.css('[ng-click^=selectButtonClick]')).first().click(); 
    }); 
}); 

element.all(by.repeater('(rowRenderIndex, row) in rowContainer.renderedRows')).then(function(arr) { 
    arr[20].all(by.css('[ng-click^=selectButtonClick]')).first().click(); 
}); 

你也可以做一個點擊之前需要滾動的元素

S EE也:

+0

嘿alecxe,我真的很感激你想幫助:)這是很難找到的任何東西量角器。 無論如何,我嘗試按照您的意見,它扔我錯誤回: NoSuchElementError:找不到使用定位器的元素:By.cssSelector(「[ng-click = \」selectButtonClick(row,$ event)\「]」) – Andurit 2015-03-02 14:28:02

+0

@Andurit好吧,但是你確定每個重複部分都有'ng-click'值''selectButtonClick(row,$ event)''這個可點擊的'div'嗎? – alecxe 2015-03-02 14:30:49

+0

這將會看起來很蹩腳,但我不確定如何測試它。 – Andurit 2015-03-02 14:32:11