我使用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)
答案 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();
};
}