Visual Studio代码无法自动完成我的javascript方法

时间:2018-04-09 13:25:17

标签: javascript node.js visual-studio-code

我正在使用Visual Studio Code,webdriverIO和javascript / nodeJS为网上商店编写自动化测试

一切正常,但我似乎无法通过代码来自动填充我的方法(我使用的是页面对象模型,包含方法的页面对象在测试中被调用)。

这是我的登录页面对象,其中包含一个登录用户的方法(只是一个示例,实际的页面对象包含更多方法):

class LoginPage{

    login(username, password) {
        browser.setValue('#ShopLoginForm_Login', username)
        browser.setValue('#ShopLoginForm_Password', password)
        browser.click('button=Login')
  }
}

module.exports = { LoginPage };

这就是我在testfile中调用它的方式:

describe('login test', function() {

    const LoginPage = require('../../pages/loginPage').LoginPage;
    loginPage = new LoginPage
    const Menu = require('../../pages/menu').Menu;
    menu = new Menu

    it('should be able to login with valid credentials', function () {
        browser.url(url)
        menu.gotoLoginPage()
        loginPage.login(username, password)
    });
});

每次我想在测试中调用一个方法时,它都不会自动完成方法名称,迫使我把它写出来,导致许多不必要的拼写错误。其他类型的方法,如webdriverIO browser.click,都可以自动完成。

我在webstorm中尝试了相同的代码,并且自动完成确实有效。

有谁知道我可以做些什么来让VS代码自动完成我的方法?

2 个答案:

答案 0 :(得分:1)

遗憾的是没人能回答。我最终找到了答案。我将其张贴在这里以供参考

在我的进口商品中:

`const LoginPage = require('../../pages/loginPage').LoginPage;
loginPage = new LoginPage`

我忘记声明该类的新实例。正确的方法应该是;

`const LoginPage = require('../../pages/loginPage').LoginPage;
var loginPage = new LoginPage`

另一种方法是使我的方法静态化,从而无需完全实例化该类

答案 1 :(得分:0)

我很难在webdriverio的vscode中使用自动建议。

此链接对我有所帮助。 https://webdriver.io/docs/autocompletion.html https://webdriver.io/docs/pageobjects.html

您的回答是正确的。实例化页面。 在官方文档中,他们使用“ new”导出类

export default new LoginPage()