gpt4 book ai didi

angularjs - 无法使用 phantomjs 运行 Protractor 测试

转载 作者:行者123 更新时间:2023-12-04 21:35:59 25 4
gpt4 key购买 nike

我正在使用 Protractor 来测试 Angular 代码。当我通过 webdriver-manager 默认附带的 chrome 驱动程序运行它时,测试运行良好。现在我想用 phantomjs( headless 浏览器)运行相同的测试,因为我需要通过服务器运行这个测试。但是在通过 phantomjs 运行测试时出现错误:

Failed: Angular could not be found on the page URL : retries looking for angular exceeded



配置文件是:
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 的说明安装了 Protractor 并通过安装phantomjs
sudo apt-get install phantomjs

最佳答案

你增加了错误的超时时间:

jasmine.DEFAULT_TIMEOUT_INTERVAL = 10000000;

此超时是为了 jasmine 测试不要运行太长时间。如果您想在页面上等待更长时间的页面加载和 Angular - 将其添加到 Protractor 配置文件中:
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 上运行 Protractor 测试,它的工作原理与真实浏览器完全不同,有时你可能会跳过真正的错误,或者找到特定于 phantomJS 的东西。

关于angularjs - 无法使用 phantomjs 运行 Protractor 测试,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38013292/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com