如何在量角器测试中设置 $interval 而不是超时
how to set $interval instead of timeout in Protractor Tests
我正在使用 appium
和 Protractor
进行 iOS 混合应用程序自动化。我在我的 config.js 文件中使用超时,但出现错误: 下面是我的 config.js 和 spec.js 文件.
请告知如何使用 $interval 而不是超时。
Config.js:
exports.config = {
allScriptsTimeout: 30000 ,
getPageTimeout: 30000 ,
忽略同步:真,
seleniumAddress: 'http://localhost:4723/wd/hub',
specs: ['PageObjectSpec.js'],
capabilities: {
browserName: 'iOS' ,
'appium-version':'1.3.4',
platformName:'iOS' ,
platformVersion: 7.1 ,
deviceName:'iPhone' ,
autoWebview:true ,
},
baseUrl: 'http://localhost:8000',
jasmineNodeOpts: {showColors: true, defaultTimeoutInterval:60000} ,
onPrepare: function() {
browser.manage().timeouts().setScriptTimeout(60000);
},
};
Spec.js 文件::
'use strict';
describe('Abbvie app test', function()
{
var userName = browser.element(by.model('credentials.username'));
var passwd = browser.element(by.model('credentials.password'));
var signin = browser.element(by.buttonText('Sign In'));
it('Login Page test', function()
{
userName.click();
//userName.sendKeys(name)
passwd.click();
//passwd.sendKeys(pass)
signin.click();
}, 60000);
});
**Protractor 日志:**在
使用 selenium 服务器
http://localhost:4723/wd/hub
[launcher] Running 1 instances of WebDriver
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
The last active task was:
Protractor.waitForAngular()
at [object Object].webdriver.WebDriver.schedule (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:345:15)
at [object Object].Protractor.executeAsyncScript_ (/usr/local/lib/node_modules/protractor/lib/protractor.js:251:26)
at [object Object].Protractor.waitForAngular (/usr/local/lib/node_modules/protractor/lib/protractor.js:274:15)
at [object Object].getWebElements (/usr/local/lib/node_modules/protractor/lib/element.js:136:19)
at [object Object].getWebElements (/usr/local/lib/node_modules/protractor/lib/element.js:669:31)
at [object Object].ElementArrayFinder.applyAction_ (/usr/local/lib/node_modules/protractor/lib/element.js:391:28)
at [object Object].self.(anonymous function) [as click] (/usr/local/lib/node_modules/protractor/lib/element.js:77:19)
at [object Object].self.(anonymous function) [as click] (/usr/local/lib/node_modules/protractor/lib/element.js:698:11)
at [object Object].<anonymous> (/Users/qualcomm/Desktop/ProtractorTest/PageObjectSpec.js:13:11)
F
Failures:
1) Abbvie app test Login Page test
Message:
timeout: timed out after 60000 msec waiting for spec to complete
Stacktrace:
undefined
Finished in 65.404 seconds
1 test, 1 assertion, 1 failure
[launcher] 0 instance(s) of WebDriver still running
[launcher] iOS #1 failed 1 test(s)
[launcher] overall: 1 failed spec(s)
[launcher] Process exited with error code 1
请征求您的建议。
谢谢,
实际上不可能在 config.js
文件中使用 $interval
代替默认的 timeout
参数。
我猜你问的原因是因为量角器文档建议在你的 Angular 应用程序中使用 $interval
而不是 $timeout
如果你遇到超时问题.这不是您的 Protractor 测试中需要更改的内容; 应用程序本身.
需要更改
您自己的文件看起来不错。
你的错误有点奇怪。与应用程序开发人员交谈,看看他们是否能找到 $http
或 $timeout
不会再回来的应用程序。还要确保页面按预期加载;检查您的开发人员控制台是否有错误,检查您的网络选项卡是否有待处理的请求,并通常确保一切就绪。
我正在使用 appium
和 Protractor
进行 iOS 混合应用程序自动化。我在我的 config.js 文件中使用超时,但出现错误: 下面是我的 config.js 和 spec.js 文件.
请告知如何使用 $interval 而不是超时。
Config.js:
exports.config = { allScriptsTimeout: 30000 , getPageTimeout: 30000 , 忽略同步:真, seleniumAddress: 'http://localhost:4723/wd/hub',
specs: ['PageObjectSpec.js'],
capabilities: {
browserName: 'iOS' ,
'appium-version':'1.3.4',
platformName:'iOS' ,
platformVersion: 7.1 ,
deviceName:'iPhone' ,
autoWebview:true ,
},
baseUrl: 'http://localhost:8000',
jasmineNodeOpts: {showColors: true, defaultTimeoutInterval:60000} ,
onPrepare: function() {
browser.manage().timeouts().setScriptTimeout(60000);
},
};
Spec.js 文件::
'use strict';
describe('Abbvie app test', function()
{
var userName = browser.element(by.model('credentials.username'));
var passwd = browser.element(by.model('credentials.password'));
var signin = browser.element(by.buttonText('Sign In'));
it('Login Page test', function()
{
userName.click();
//userName.sendKeys(name)
passwd.click();
//passwd.sendKeys(pass)
signin.click();
}, 60000);
});
**Protractor 日志:**在
使用 selenium 服务器http://localhost:4723/wd/hub
[launcher] Running 1 instances of WebDriver
A Jasmine spec timed out. Resetting the WebDriver Control Flow.
The last active task was:
Protractor.waitForAngular()
at [object Object].webdriver.WebDriver.schedule (/usr/local/lib/node_modules/protractor/node_modules/selenium-webdriver/lib/webdriver/webdriver.js:345:15)
at [object Object].Protractor.executeAsyncScript_ (/usr/local/lib/node_modules/protractor/lib/protractor.js:251:26)
at [object Object].Protractor.waitForAngular (/usr/local/lib/node_modules/protractor/lib/protractor.js:274:15)
at [object Object].getWebElements (/usr/local/lib/node_modules/protractor/lib/element.js:136:19)
at [object Object].getWebElements (/usr/local/lib/node_modules/protractor/lib/element.js:669:31)
at [object Object].ElementArrayFinder.applyAction_ (/usr/local/lib/node_modules/protractor/lib/element.js:391:28)
at [object Object].self.(anonymous function) [as click] (/usr/local/lib/node_modules/protractor/lib/element.js:77:19)
at [object Object].self.(anonymous function) [as click] (/usr/local/lib/node_modules/protractor/lib/element.js:698:11)
at [object Object].<anonymous> (/Users/qualcomm/Desktop/ProtractorTest/PageObjectSpec.js:13:11)
F
Failures:
1) Abbvie app test Login Page test
Message:
timeout: timed out after 60000 msec waiting for spec to complete
Stacktrace:
undefined
Finished in 65.404 seconds
1 test, 1 assertion, 1 failure
[launcher] 0 instance(s) of WebDriver still running
[launcher] iOS #1 failed 1 test(s)
[launcher] overall: 1 failed spec(s)
[launcher] Process exited with error code 1
请征求您的建议。 谢谢,
实际上不可能在 config.js
文件中使用 $interval
代替默认的 timeout
参数。
我猜你问的原因是因为量角器文档建议在你的 Angular 应用程序中使用 $interval
而不是 $timeout
如果你遇到超时问题.这不是您的 Protractor 测试中需要更改的内容; 应用程序本身.
您自己的文件看起来不错。
你的错误有点奇怪。与应用程序开发人员交谈,看看他们是否能找到 $http
或 $timeout
不会再回来的应用程序。还要确保页面按预期加载;检查您的开发人员控制台是否有错误,检查您的网络选项卡是否有待处理的请求,并通常确保一切就绪。