2
我有一個搜索結果頁面,我試圖點擊分頁按鈕。我可以通過中繼器查找頁面元素。我也能夠獲得單個頁面元素的文本。但是當我點擊頁面按鈕時,結果會根據我使用的點擊方法而有所不同。我嘗試了各種click()方法,但都無效。我還能嘗試什麼?量角器不能點擊一個元素,但能夠獲取文本
這裏是我的代碼:
this.clickPageNumber = function(pgNum) {
browser.executeScript('window.scrollTo(254,1600);').then(function() {
paginationPageNumberList.get(pgNum).then(function(we) {
browser.wait(EC.elementToBeClickable(we), 10000);
we.getText().then(function(pgText) {
console.log('Clicking page: ' + pgText); //prints correct pg
we.click(); //this part doesn't work
browser.pause();
});
});
});
};
所以這裏的一切,我試過
browser.actions().mouseMove(we).click(); //no error but pg does not paginate
we.sendKeys(protractor.Key.ENTER); //Error: Failed: unknown error : cannot focus element
we.click(); //rror: Failed: unknown error: Element is not clickable at point (254, 806). Other element would receive the click: <a href="" ng-click="selectPage(page - 1)" class="ng-binding">...</a>
下面是HTML:
<div id="dispute-queue-search-result-pagination" class="pagination-controller">
<ul class="pagination ng-isolate-scope ng-valid" ng-change="resultController.pageChanged()" next-text="›" previous-text="‹" max-size="resultController.maxSize" ng-model="resultController.currentPage" items-per-page="resultController.itemsPerPage" total-items="resultController.totalItems">
<!-- ngIf: boundaryLinks -->
<!-- ngIf: directionLinks -->
<li class="ng-scope disabled" ng-class="{disabled: noPrevious()}" ng-if="directionLinks">
<a class="ng-binding" ng-click="selectPage(page - 1)" href="">‹</a>
</li>
<!-- end ngIf: directionLinks -->
<!-- ngRepeat: page in pages track by $index -->
<li class="ng-scope active" ng-class="{active: page.active}" ng-repeat="page in pages track by $index">
<a class="ng-binding" ng-click="selectPage(page.number)" href="">1</a>
</li>
<!-- end ngRepeat: page in pages track by $index -->
<li class="ng-scope" ng-class="{active: page.active}" ng-repeat="page in pages track by $index">
<a class="ng-binding" ng-click="selectPage(page.number)" href="">2</a>
</li>
<!-- end ngRepeat: page in pages track by $index -->
<li class="ng-scope" ng-class="{active: page.active}" ng-repeat="page in pages track by $index">
<a class="ng-binding" ng-click="selectPage(page.number)" href="">3</a>
</li>
<!-- end ngRepeat: page in pages track by $index -->
<li class="ng-scope" ng-class="{active: page.active}" ng-repeat="page in pages track by $index">
<a class="ng-binding" ng-click="selectPage(page.number)" href="">4</a>
</li>
<!-- end ngRepeat: page in pages track by $index -->
<li class="ng-scope" ng-class="{active: page.active}" ng-repeat="page in pages track by $index">
<a class="ng-binding" ng-click="selectPage(page.number)" href="">5</a>
</li>
<!-- end ngRepeat: page in pages track by $index -->
<!-- ngIf: directionLinks -->
<li class="ng-scope" ng-class="{disabled: noNext()}" ng-if="directionLinks">
<a class="ng-binding" ng-click="selectPage(page + 1)" href="">›</a>
</li>
<!-- end ngIf: directionLinks -->
<!-- ngIf: boundaryLinks -->
</ul>
</div>
感謝那些工作。陣列搜索器將存儲根元素和孩子。必須下到小孩。 – awaken 2015-04-03 19:13:08
@awaken good!另請查看替代方法。 – alecxe 2015-04-03 19:13:27
雅第二個更清潔。 – awaken 2015-04-03 19:14:21