Cucumber 量角器黄瓜;Sendkey“;输入一个文本";“未定义”;而是我的文本
我有一个用pageobject模型编写的测试,带有量角器v2.5.1,Cucumberjs v0.7.0: ---------------loginpage.js---------------------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);
'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不能初始化元素。所以我改变了就业的方式。非常感谢。