我似乎无法通过测试成功获得PhantomJS。我试图将其集成到我的项目中,但是在失败之后,我尝试仅运行基本的Angular Docs示例,但遇到了同样的问题。到目前为止,我的步骤:
npm install -g phantomjs
phantomjs --webdriver=9515
// ... GhostDriver-Main-在端口9515上运行protractor protractorConf.js
这是与示例中相同的文件,仅具有browserName,并且seleniumAddress端口已更改:
// An example configuration file.
exports.config = {
// The address of a running selenium server.
seleniumAddress: 'http://localhost:9515',
// Capabilities to be passed to the webdriver instance.
capabilities: {
'browserName': 'phantomjs'
},
// Spec patterns are relative to the current working directly when
// protractor is called.
specs: ['onProtractorRunner.js'],
// Options to be passed to Jasmine-node.
jasmineNodeOpts: {
showColors: true,
}
};
我收到以下错误消息:
UnknownError: Error Message => 'Detected a page unload event; asynchronous script execution does not work across page loads.'
我在github上发现了这个问题,这似乎是相关的。我以为我对他们的brower-setup.md足够了解,可以将其包含在我的beforeEach
功能之一中。然后我发现这里 ptor
无论如何只是包装驱动程序。哇,我知道我在量角器/硒土地上是个菜鸟,但是信噪比令人信服。我真的很想使用PhantomJS来获得性能上的好处,但是在此上浪费更多时间的前景正伤着我的头。如果有问题,我使用的是Windows 7 Enterprise 64位。谢谢!
从根本上来说,此修复为我解决了相同的问题:
https://github.com/pschwartau/protractor/commit/1eeff8b1b2e3e8f3b7c8152264411f26d4665a07
如此处最初所述:renanmartins的https://github.com/angular/protractor/issues/85#issuecomment-26846255
内部protractor / lib / protractor.js替换
this.driver.get('about:blank');
this.driver.executeScript(
'window.name = "' + DEFER_LABEL + '" + window.name;' +
'window.location.href = "' + destination + '"');
与
var driver = this.driver;
this.getCapabilities().then(function (capabilities) {
if (capabilities.caps_.browserName === 'phantomjs') {
driver.executeScript('window.name = "' + DEFER_LABEL + '" + window.name;');
driver.get(destination);
} else {
driver.get('about:blank');
driver.executeScript(
'window.name = "' + DEFER_LABEL + '" + window.name;' +
'window.location.href = "' + destination + '"');
}
// Make sure the page is an Angular page.
driver.executeAsyncScript(clientSideScripts.testForAngular, 10).
then(function(hasAngular) {
if (!hasAngular) {
throw new Error('Angular could not be found on the page ' +
destination);
}
});
});
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句