从WebdriverIO中的基本页面对象页面调用方法时出现“不是函数”错误

时间:2018-01-04 10:37:37

标签: javascript node.js automated-tests pageobjects webdriver-io

我一直在使用页面对象模式和WebdriverIO,并试图声明一个将在子页面中继承的选择器。我试过这两个

function Page() {
    this.loader = function() {
        return $("div[class*='loading'] svg");
    }
}

和这个

Page.prototype.loader = function() {
    return $("div[class*='loading'] svg");
}

当我从子页面调用此函数时,例如

checkoutPage.loader.waitForVisible(5000, true);

我得到“checkoutPage.loader.waitForVisible”不是函数“错误。如何为基本页面声明getter,以便可以从任何孩子调用它?

1 个答案:

答案 0 :(得分:1)

当你致电checkoutPage.loader.waitForVisible(5000, true)时实际上你正在返回整个loader函数而不是元素。

将其更改为checkoutPage.loader().waitForVisible(5000, true);,您的第一个示例应该可以正常使用。