Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/matlab/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Cucumber 量角器黄瓜;Sendkey“;输入一个文本";“未定义”;而是我的文本_Cucumber_Protractor_Pageobjects - Fatal编程技术网

Cucumber 量角器黄瓜;Sendkey“;输入一个文本";“未定义”;而是我的文本

Cucumber 量角器黄瓜;Sendkey“;输入一个文本";“未定义”;而是我的文本,cucumber,protractor,pageobjects,Cucumber,Protractor,Pageobjects,我有一个用pageobject模型编写的测试,带有量角器v2.5.1,Cucumberjs v0.7.0: ---------------loginpage.js--------------------- 'use strict'; ( function () { //var ptor; var navigate = function () { console.log("789"); isAngularSite(false);

我有一个用pageobject模型编写的测试,带有量角器v2.5.1,Cucumberjs v0.7.0:

---------------loginpage.js---------------------

'use strict';

( function () {

    //var ptor;
    var navigate = function () {
        console.log("789");
        isAngularSite(false);
        browser.get("");
    };

    var login = function ( username, password ) {

        browser.driver.findElement( by.id('log')).sendKeys(username);
        browser.driver.findElement( by.id( 'pwd' ) ).sendKeys(password);
        browser.driver.findElement( by.id( 'login' ) ).click();
        browser.sleep(3000);
    };

    var LoginPage = function () {
        //var username     = browser.driver.findElement( by.id( 'log' ) );
        //var password     = browser.driver.findElement( by.id( 'pwd' ) );
        //var loginButton  = browser.driver.findElement( by.id( 'login' ) );
    };

    LoginPage.prototype.navigate = navigate();
    LoginPage.prototype.login    = login();

    module.exports = LoginPage;

} )();
'use strict';

var LoginPage      = require( './loginpage.js' );

//var HomePage       = require( '../homepage/homepage.js' );

//var chai           = require( 'chai' );
//
//var chaiAsPromised = require( 'chai-as-promised' );
//
//chai.use( chaiAsPromised );
//
//var expect = chai.expect;

module.exports = function () {

    var loginPage;
    var homePage;

    this.Before( function ( callback ) {
        loginPage = new LoginPage();
        //homePage  = new HomePage();
        //isAngularSite(false);
        loginPage.navigate();
        callback();

    } );

    this.After( function ( callback ) {
        //logout
        callback();
    } );

    this.Given(/^I login using valid creadentials&/, function ( callback ) {
        loginPage.login( 'binhle', '12345678' ); //valid creadential
        callback();
    } );


};
----------------规格js-------------------

'use strict';

( function () {

    //var ptor;
    var navigate = function () {
        console.log("789");
        isAngularSite(false);
        browser.get("");
    };

    var login = function ( username, password ) {

        browser.driver.findElement( by.id('log')).sendKeys(username);
        browser.driver.findElement( by.id( 'pwd' ) ).sendKeys(password);
        browser.driver.findElement( by.id( 'login' ) ).click();
        browser.sleep(3000);
    };

    var LoginPage = function () {
        //var username     = browser.driver.findElement( by.id( 'log' ) );
        //var password     = browser.driver.findElement( by.id( 'pwd' ) );
        //var loginButton  = browser.driver.findElement( by.id( 'login' ) );
    };

    LoginPage.prototype.navigate = navigate();
    LoginPage.prototype.login    = login();

    module.exports = LoginPage;

} )();
'use strict';

var LoginPage      = require( './loginpage.js' );

//var HomePage       = require( '../homepage/homepage.js' );

//var chai           = require( 'chai' );
//
//var chaiAsPromised = require( 'chai-as-promised' );
//
//chai.use( chaiAsPromised );
//
//var expect = chai.expect;

module.exports = function () {

    var loginPage;
    var homePage;

    this.Before( function ( callback ) {
        loginPage = new LoginPage();
        //homePage  = new HomePage();
        //isAngularSite(false);
        loginPage.navigate();
        callback();

    } );

    this.After( function ( callback ) {
        //logout
        callback();
    } );

    this.Given(/^I login using valid creadentials&/, function ( callback ) {
        loginPage.login( 'binhle', '12345678' ); //valid creadential
        callback();
    } );


};
当我使用IDE Webstorm运行测试时,控制台输出:

"C:\Program Files\JetBrains\WebStorm 10.0.4\bin\runnerw.exe" "C:\Program Files\nodejs\node.exe" c:\Users\Dave.Le\AppData\Roaming\npm\node_modules\protractor\lib\cli.js config.js
Using the selenium server at http://127.0.0.1:4444/wd/hub
[launcher] Running 1 instances of WebDriver
789
[launcher] 0 instance(s) of WebDriver still running
[launcher] firefox #1 passed
但当我在浏览器上观察时,它只为
username
password
字段输入文本“undefined”

我的问题是: 1.为什么它不输入我的文本“binhle”而不是“undefined”?
2.如何查看文本的文本结果(本例中为失败?

在页面对象中,您在分配功能时调用
登录
导航
功能:

LoginPage.prototype.navigate = navigate();
LoginPage.prototype.login    = login();
你真正想做的是:

LoginPage.prototype.navigate = navigate;
LoginPage.prototype.login    = login;
或者更简单地说:

var LoginPage = function LoginPage () { ... };
LoginPage.prototype.login = function (username, password) { ... };    

感谢您的回复,但当我将代码更改为
LoginPage.prototype.navigate=navigate
LoginPage.prototype.login=login,我的代码无法运行命令
browser.get('example.com')。你知道为什么会发生这些问题吗?你能像上面提到的那样简单地详细说明你的代码吗?对不起我的愚蠢。非常感谢。原因是当我调用页面时,loginpage不能初始化元素。所以我改变了就业的方式。非常感谢。