"退出过程,错误代码为1"当我运行下面的脚本时,这是显示错误消息,代码错误:1

时间:2018-01-13 09:40:23

标签: angularjs protractor

  

失败:等待量角器与页面同步时出错:   " angularJS可测试性和角度可测试性都是不确定的。   这可能是因为这是一个非角度页面或因为   您的测试涉及客户端导航,这可能会干扰   量角器的自举。有关详细信息,请参阅http://git.io/v4gXM

我在下面的代码中使用页面对象模型。但如果我使用普通代码,它可以正常工作。你能告诉我在哪里纠正这个代码。由于这是一个机密项目,我无法呈现我当前的网址 配置文件:

exports.config={
directConnect: true,
framework: 'jasmine',
capabilities:
{
'browserName' : 'chrome'

    },

    specs: ['specs.js'],

jasmineNodeOpts: {
    showColors: true,

}

页面对象模型

var CAPTNLoginpage = function(){
var NameInput = element(by.id('userNameInput'));
var PasswordInput = element(by.id('passwordInput'));
var Submit = element(by.id('submitButton'));

this.get=function(){

    browser.get('https://xxxxxxxx/', 25000);
    browser.ignoreSyncronization=true;
    browser.driver.sleep(10000);
    var title = browser.getTitle();
    console.log(title);
};

this.setName = function(name){
    NameInput.sendKeys(name);
};

this.setPassword = function(password){
    PasswordInput.sendKeys(password);
};

this.loginsubmit=function(){
    Submit.click();
};
};

module.exports = new CAPTNLoginpage();

specs
var CAPTNLogin = require('./CAPTNLoginpage');
describe('CAPTN Login Page', function(){

it('Should login into CAPTN',function(){

    CAPTNLogin.get();

    CAPTNLogin.setName('xxxxxxxxxxx');
    CAPTNLogin.setPassword('5196qL25196qL2');
    CAPTNLogin.loginsubmit();

});
});

如果我使用正常程序,那么它工作正常 没有Page对象模型的规范

describe('Protractor Demo App', () => {

it('should have title', () =>  {
    browser.get('xxxxxxxxxxxxxx/');
  browser.ignoreSynchronization = true;
    browser.driver.sleep(30000);
    var a = browser.getTitle();
    console.log(a);
    element(by.id('userNameInput')).sendKeys('xxxxxxxxxxxxxxx');
    element(by.id('passwordInput')).sendKeys('xxxxxxxxxxxxxx');
    element(by.id('submitButton')).click();
});
});

2 个答案:

答案 0 :(得分:0)

如果您运行旧版Chrome驱动程序,则可能会出现此特定问题。修复很简单,将您的chrome驱动程序升级到最新版本(编写本文时为2.35)。以下是更新chrome驱动程序的命令示例:

node ./node_modules/protractor/bin/webdriver-manager update --versions.chrome 2.35 --standalone false --gecko false 

(如果您的项目是本地安装的量角器)。

如果您不确定机器上安装量角器的位置(本地或全局),并且上述功能无效,请直接尝试:

webdriver-manager update --versions.chrome 2.35 --standalone false --gecko false

如果不起作用,请先安装webdriver管理器(npm install -g webdriver-manager)。

如果您的问题仅仅是您的驱动程序已过期,那么这应该可以解决问题。

答案 1 :(得分:0)

我遇到了同样的问题。问题出在这一行:

var title = browser.getTitle();

它正在尝试与页面对象同步,但我们告诉它立即存储导致此问题的标题。在我看来,错误本身有点误导。我也有相同的代码行。我删除它,它工作正常。

请从此处删除此行,然后重试。

如果您确实需要标题,请在页面对象中为此编写另一个功能。类似的东西:

this.getBrowserTitle = function() {
var title = browser.getTitle();
return title;    
};

希望这会有所帮助。如果这可以解决您的问题,请告诉我。 POM是要走的路。