Ich migriere PhantomJS zu Chrome Headless in meinem Projekt. Das Projekt wurde in Angular1.x geschrieben und enthält * .spec.js-Dateien zum Testen. Ich habe die folgenden Änderungen vorgenommen, um Chromeheadless zu verwenden.PhantomJS zu Chromeheadless mit navigator.userAgent
karma.conf.js
// browsers: ['PhantomJS']
browsers: ['ChromeHeadless']
package.json
"karma": "^1.7.1",
"karma-chrome-launcher": "^2.2.0"
Prüfungen nicht, wo immer * .spec.js verschiedene Useragent Einstellung.
window.navigator = {
userAgent: 'Firefox;'
}
window.navigator = {
userAgent: 'iPad;'
}
Dies funktioniert für PhantomJS in Ordnung, aber wirft "cannot assign to readonly property navigator of object '#<Window>'"
für ChromeHeadless.
Hier ist, wie ich mein Window-Objekt bekomme.
myfile.spec.js
'use strict';
describe('My test description', function(){
var rootScope, compile, window, $document, browser, scope, timeout;
beforeEach(inject(function($rootScope, $compile, $window, _$document_, _browser_, $timeout;){
rootScope = $rootScope;
compile = $compile;
window = $window;
$document = _$document_;
browser = _browser_;
timeout = $timeout;
}));
...
...
...
});
in Internet gesucht und keine Lösung oder ein Thema meiner Frage im Zusammenhang finden. Welche Änderungen sollten vorgenommen werden, damit das window-Objekt nicht schreibgeschützt ist, sodass ich andere userAgents zuweisen kann? Kann mir jemand helfen?
Vielen Dank im Voraus.