如何从量角器中的包含文件导航?

时间:2015-12-09 17:00:14

标签: node.js protractor e2e-testing

我已完成此SO问题中提到的内容,将文件包含在我的量角器测试中:How to reuse code in Protractor / AngularJS Testing。问题是从这个包含的代码中调用的方法对我看到的浏览器窗口没有影响。

我在一个单独的文件中创建了一个登录方法并将其包含在内,但是当我从量角器测试中调用该方法时,打开的浏览器就在那里停留几秒钟然后继续,好像我没有调用任何东西。我可以验证是否使用console.log调用该方法。以下是我的代码文件。

login.js,包含登录功能:

exports.login = function ()
{
    console.log("Login method called");
    it('logs in', function () {
        browser.get('http://my-url.com/login/');

        // log in to continue with checkout
        element(by.xpath('//*[@id="login-form"]/div[1]/input')).sendKeys("username");
        element(by.xpath('//*[@id="login-form"]/div[2]/input')).sendKeys("password");
        element(by.xpath('//*[@id="login-form"]/div[3]/button')).click();

        // login functions on timeout
        browser.driver.sleep(1000);
    });
}

conf.js,量角器配置文件:

exports.config = {
    seleniumAddress: 'http://localhost:4444/wd/hub',
    specs: [/*'specs/overview.js',*/ 'specs/shopping-cart-state.js', 'specs/checkout-state.js', 'specs/buy-item.js'],
    onPrepare: function () {
        var SpecReporter = require('jasmine-spec-reporter');
        // add jasmine spec reporter
        jasmine.getEnv().addReporter(new SpecReporter({ displayStacktrace: 'all' }));
        protractor.login = require('./login.js');
    },
    jasmineNodeOpts: {
        print: function () { },
        defaultTimeoutInterval: 5000000
    }
};

spec.js,测试规范:

describe('Log in with an included function', function () {

    it('logs in', function () {    

        protractor.login.login();

        browser.driver.sleep(5000);
    });
});

即使我将浏览器对象作为参数传递给登录功能,仍然没有任何反应,我没有收到任何错误消息。谁能告诉我我做错了什么?

1 个答案:

答案 0 :(得分:0)

不要将你的逻辑包装在private boolean equals(IntTreeNode node1, IntTreeNode node2) { if (node1 == node2) { return true; } if (node1 == null || !node1.equals(node2)) { return false; } return equals(node1.left, node2.left) && equals(node1.right, node2.right); } 的"登录"模块:

it()