量角器browser.get()没有导航到具有致命错误异常

时间:2015-08-19 22:51:53

标签: javascript angularjs node.js selenium-webdriver protractor

我使用Protractor Page Object模型来测试多页单页混合Web服务。我正在做的工作是首先在非角度网站上注册一些教师和学生,然后登录到每个用户的不同网址并做一些事情。我使用的IDE是Webstorm。注册部分进展顺利但是它应该导航到登录功能中的新网址。它抛出致命错误:CALL_AND_RETRY_LAST分配失败 - 进程内存不足我不知道发生了什么,因为登录功能在前几次测试中工作正常(我删除了其他测试用例的清洁度),任何建议?提前谢谢。

这是我的代码片段,应该非常直接。

    describe('saltare registration test', function () {
            var url,username = 'xxx',password = 'xxx';
            describe('instructor and student registration', function () {
                beforeEach(function () {
                    isAngularSite(false);
                    url = 'https://prod-cn.saltare.pearson-intl.com/batch_reg/batches/';
                    common.login(url, username, password);
                });
                it('instructor register via saltare', function () {
                    saltare.updateUsers('instructor', 2);
                });
            });

            describe('instructor and student setup', function () {
                beforeEach(function () {
                    isAngularSite(false);
                    url = 'http://www.myieltslab.com/';
                    password = 'xxx';
                });
                it('instructor setup personal profile', function () {
                        common.login(url, username, password);
                    }
                });
            });
        });

这是我的登录功能:

var common = function(){
    this.login = function(url, username, password){
        console.log('in function login:'+url+' '+username+' '+password);
        //browser.driver.nstrong textavigate().to(url);
        browser.get(url);
        browser.driver.manage().window().maximize();
        element(common_objects.USERNAME).sendKeys(username);
        element(common_objects.PASSWORD).sendKeys(password);
        element(common_objects.SUBMIT).click();
    };
}

这是控制台日志和错误消息

Using the selenium server at http://localhost:4444/wd/hub
[launcher] Running 1 instances of WebDriver
Started
in function:https://prod-cn.saltare.pearson-intl.com/batch_reg/batches/ xxx xxx
in function:https://prod-cn.saltare.pearson-intl.com/batch_reg/batches/ xxx xxx
in function:http://www.myieltslab.com/ xxx xxx
FATAL ERROR: CALL_AND_RETRY_LAST Allocation failed - process out of memory

Process finished with exit code -1073740791 (0xC0000409)

2 个答案:

答案 0 :(得分:1)

Google says由于使用大型数据文件,超出节点上的默认成员限制(512mb)会导致此错误?我的代码中看不到任何看起来太大的内容(虽然我不确定/subDirectory1/index.cfm/main /subDirectory2/index.cfm/main 正在做什么)。

我会尝试运行最后一个描述,看看它是否自己失败了(我猜不到)。在这一点上,如果没有看到代码,很难说。

如果失败,请尝试增加Node的内存限制:

isAngularSite(false)

答案 1 :(得分:1)

经过几次研究后,我最终找到了错误的根本原因和解决方案,对于非角度,如果你设置了ignoreSynchronization,请不要使用element(),使用Webdriver'而是browser.driver.findElement()。这解决了所有问题。

这是工作代码,

var common = function(){
    this.login = function(url, username, password){
        console.log('in function login:'+url+' '+username+' '+password);
        browser.driver.get(url);
        browser.driver.manage().window().maximize();
        browser.driver.findElement(common_objects.USERNAME).sendKeys(username);
        browser.driver.findElement(common_objects.PASSWORD).sendKeys(password);
        browser.driver.findElement(common_objects.SUBMIT).click();
    };
}