使用ElementArrayFinder的量角器executeScript怪异

时间:2015-04-03 01:15:11

标签: javascript testing protractor pageobjects end-to-end

我在我的Page Object中声明了这个:

this.paginationPageNumberList = element.all(by.repeater("page in pages track by $index"));

在Page Object的一个函数中运行它,它成功并打印'no wrap':

browser.executeScript('window.scrollTo(254,1600);');
this.paginationPageNumberList.get(0).then(function() {
    console.log("no wrap");
});

除了使用then()之外,运行同样的事情会给我一个错误:

browser.executeScript('window.scrollTo(254,1600);').then(function () {
    this.paginationPageNumberList.get(0).then(function() {
        console.log("wrap");
    });
});
  

失败:无法调用未定义的方法'get'。

为什么?

1 个答案:

答案 0 :(得分:2)

我担心 this在这种情况下并不是指页面对象

相反,请创建一个单独的变量:

var paginationPageNumberList = element.all(by.repeater("page in pages track by $index"));
this.paginationPageNumberList = paginationPageNumberList;

browser.executeScript('window.scrollTo(254,1600);').then(function () {
    paginationPageNumberList.get(0).then(function() {
        console.log("wrap");
    });
});