javascript - 从 WebdriverIO 中的基本 pageobject 页面调用方法时出现 "is not a function"错误

标签 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,以便可以从任何子页面调用它?

最佳答案

当您调用 checkoutPage.loader.waitForVisible(5000, true) 时,您实际上返回的是整个 loader 函数而不是元素。

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

关于javascript - 从 WebdriverIO 中的基本 pageobject 页面调用方法时出现 "is not a function"错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48093428/

相关文章:

php - 保存外部 xml 文件的副本,而不使用 xml 命名空间

node.js - 尝试运行聊天包时在 Node js 上出错

javascript - Javascript 的测试框架

java - 如何在同一个浏览器窗口中依次运行一组 Cucumber 功能文件?

javascript - 当我使用 jQuery 时,如何有效地控制打印网页的哪一部分?

javascript - 使用 javascript 取消选中复选框时如何启用文本框

javascript - HTML 5 Canvas - 在 Javascript 中为数组/对象分配坐标值的正确方法

javascript - Java 中的 Deflate、Javascript 中的 Inflate、Z_DATA_ERROR

javascript - 使用 NodeJS 遍历 mongo 数据流时内存泄漏

c# - 如何将 nunit 结果存入数据库