我正在使用量角器进行自动化测试,我遇到了以下行为:
当我尝试使用browser.get加载一个certin页面时,页面已加载,但是我收到以下错误:
Error while running testForAngular: asynchronous script timeout: result was not received in 11 seconds.
我以下列方式使用browser.get:
beforeEach(function() {
browser.ignoreSynchronization = false;
browser.get('https://.../Automation_VF');
browser.ignoreSynchronization = true;
},60000);
it(data.testProperties.Description, function () {
browser.executeScript('return RemoteActions;')
.then(function(remoteAction) {
browser.executeAsyncScript(function(remoteAction) {
var callback = arguments[arguments.length - 1];
Visualforce.remoting.Manager.invokeAction(remoteAction.clearAllData, function (res, ev) {
callback(res);
}, { buffer: false, escape: false, timeout: 15000 });
},remoteAction).then(function(res) {
console.log("executing async script");
console.log(res);
});
});
});
我的conf文件是:
exports.config = {
framework: 'jasmine2',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['multiTestRun.js'],
getPageTimeout: 60000,
rootElement: '[ng-app]',
jasmineNodeOpts: {
showColors: true,
defaultTimeoutInterval: 10000000,
isVerbose: true,
includeStackTrace: true
},
...
};
页面Automation_VF是非角度页面。 如果我在browser.ignoreSynchronization设置为true后尝试使用browser.get命令,则页面不会被丢失。
我的问题是为什么我会得到上面提到的错误(即使it块中的所有代码都被注释掉,也会发生错误)以及如何使browser.get命令使用里面的执行脚本命令它块?
答案 0 :(得分:0)
我的第一个建议是使用页面对象并提取Automation_VF页面,然后该页面将处理页面本身的检索。这样你的对象知道如何让自己和你的规格知道如何禁用/启用同步。 This可能会让您感动。
答案 1 :(得分:0)
将it块转换为以下格式后,我能够解决问题:
it(data.testProperties.Description, function () {
browser.get('https://.../Automation_VF');
browser.get('https://.../Automation_VF');
browser.executeScript('return RemoteActions;')
.then(function(remoteAction) {
browser.executeAsyncScript(function(remoteAction) {
var callback = arguments[arguments.length - 1];
Visualforce.remoting.Manager.invokeAction(remoteAction.clearAllData, function (res, ev) {
callback(res);
}, { buffer: false, escape: false, timeout: 15000 });
},remoteAction).then(function(res) {
console.log("executing async script");
console.log(res);
});
});
});
似乎当只有一个get动作时,请求的页面没有被加载,并且做了两个get动作修复了它。