gpt4 book ai didi

javascript - 页面对象设计模式 Protractor

转载 作者:行者123 更新时间:2023-11-28 01:31:46 25 4
gpt4 key购买 nike

我正在尝试将 Protractor 代码移动到我通过登录测试启动的页面对象设计模式,请在下面找到我的代码。

运行我的测试时, Protractor 加载页面,但在尝试在用户名密码输入中输入文本时失败,我尝试使用 by.id 和 by.input 来定位用户名文本区域,但两者都不起作用。另请注意,当我在使用页面对象模式 Protractor 之前运行登录测试时,能够找到文本区域。

页面登录.js:

  var loginPage = function ()
{
this.userName = element(by.input('userName'));
this.password = element(by.input('userPassword')) ;
this.loginButton = element(by.id('login_form_signin_button'));
this.loginText = element(by.css('#mainGlobalSearchBtn'));
this.loginError = element(by.xpath('html/body/div[1]/div[1]/div[1]/form/div/p'));
this.login = function (userName, password)
{
loginPage.userName.sendKeys(userName);
loginPage.password.sendKeys(password);
loginPage.loginButton.click ();
browser.waitForAngular ();
}

};





it('should not login : incorrect login details', function()

{
var loginPage = new loginPage();
loginPage.login('incorrectusername','incorrectpassword');
expect(loginPage.loginError.getText()).toContain('Access denied');
});

控制台输出:

   1) Login should not login : incorrect login details
Message:
TypeError: undefined is not a function
Stacktrace:
TypeError: undefined is not a function
at null.<anonymous> (C:\Users\orsyp\DUX\k_workload_ar\ui\e2e\login.spec.js:3
1:26)
at C:\Users\orsyp\DUX\k_workload_ar\ui\node_modules\grunt-protractor-runner\
node_modules\protractor\jasminewd\index.js:54:12
at webdriver.promise.ControlFlow.runInNewFrame_ (C:\Users\orsyp\DUX\k_worklo
ad_ar\ui\node_modules\grunt-protractor-runner\node_modules\protractor\node_modul
es\selenium-webdriver\lib\webdriver\promise.js:1445:20)
at webdriver.promise.ControlFlow.runEventLoop_ (C:\Users\orsyp\DUX\k_workloa
d_ar\ui\node_modules\grunt-protractor-runner\node_modules\protractor\node_module
s\selenium-webdriver\lib\webdriver\promise.js:1310:8)
at wrapper [as _onTimeout] (timers.js:252:14)
at Timer.listOnTimeout [as ontimeout] (timers.js:110:15)

最佳答案

如果我遵循Getting started doc例如,您应该将 var loginPage = new loginPage(); 添加到 it 函数中。

it('should not login : incorrect login details', function() {
//add this line
var loginPage = new loginPage();

loginPage.login('incorrectusername','incorrectpassword');
expect(loginPage.loginError.getText()).toContain('Access denied');
});

关于javascript - 页面对象设计模式 Protractor ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22038700/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com