我正在使用量角器来测试Angular代码。当我通过chromedriver驱动程序运行它时,测试运行正常,默认情况下使用webdriver-manager。现在我想用phantomjs(无头浏览器)运行相同的测试,因为我需要通过服务器运行此测试。但是当通过phantomjs运行测试时,我收到了错误:
失败:在页面网址上找不到Angular:重试超出角度
Conf文件是:
exports.config = {
framework: 'jasmine',
seleniumAddress: 'http://localhost:4444/wd/hub',
specs: ['demo-test.js'],
capabilities: {
browserName: 'phantomjs',
version: '',
platform: 'ANY'
};
demo-test.js文件如下所示:
// demo-test.js
describe('Protractor Demo App', function() {
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000000;
beforeEach(function() {
browser.driver.manage().window().setSize(1280, 1024);
});
it('should have a title', function() {
browser.get('URL');
expect(browser.getTitle()).toEqual('Title');
});
请帮帮我。我已经使用官方site的说明安装了量角器,并通过
安装了phantomjs sudo apt-get install phantomjs
答案 0 :(得分:1)
你增加了错误的超时:
jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000000;
此超时是茉莉花测试不能运行太久。如果你想等待页面上的页面加载和角度更长 - 将其添加到量角器配置文件:
getPageTimeout: timeout_in_millis //default 10 sec
allScriptsTimeout: timeout_in_millis //default 11 sec
更多关于超时的信息 - http://www.protractortest.org/#/timeouts
同时检查您是否指向正确的根元素:
// CSS Selector for the element housing the angular app - this defaults to
// body, but is necessary if ng-app is on a descendant of <body>.
rootElement: 'body',
我不会建议在phantomJS上运行量角器测试,它与真实浏览器的工作原理完全不同,有时你可能会跳过真正的错误,或找到特定于phantomJS的东西。