Ich versuche, einen Multi-Browser-Test mit Winkelmesser mit Firefox und Chrome zu implementieren. Aber für den Test muss ich den Download-Pfad ändern. In Chrome funktioniert es, aber in Firefox, die Lösung, die ich gefunden habe beteiligt das Profil von Firefox ändern. Ich habe auch einen Weg gefunden, wie in den Antworten auf diese Frage Set firefox profile protractor zu tun.Fehler: profile.getTemplateDir ist keine Funktion
Aber wenn ich versuche, mehrere Instanz des Navigators neben einer Instanz von Firefox mit geänderten Profil auszuführen, erhalte ich immer einen Fehler als profile.getTemplateDir is not a function
. Hier
ist der Code in meiner Winkelmesser Konfigurationsdatei:
var q = require('q');
var FirefoxProfile = require("selenium-webdriver/firefox").Profile
function getProfiles() {
let deferred = q.defer();
let multiCapabilities = [{
browserName: 'chrome'
}]
deferred.resolve(multiCapabilities);
let firefoxProfile = new FirefoxProfile();
firefoxProfile.setPreference("browser.download.folderList", 2);
firefoxProfile.setPreference("browser.download.manager.showWhenStarting", false);
firefoxProfile.setPreference("browser.download.dir", '/tmp');
let foxCapabilities = {
browserName: 'firefox',
firefox_profile: firefoxProfile
};
multiCapabilities.push(foxCapabilities);
deferred.resolve(multiCapabilities);
return deferred.promise;
}
exports.config = {
seleniumAddress: "http://localhost:4444/wd/hub",
specs: [
'spec.js'
],
framework: 'jasmine2',
getMultiCapabilities: getProfiles,
jasmineNodeOpts: {
defaultTimeoutInterval: 30000
},
};
Hat jemand weiß, warum dieser Fehler ausgelöst wird und wie es zu lösen?
Dank
Ich denke, das Problem ist, dass das Profil einmal und –
für eine Instanz von Firefox funktioniert, Dieser Code durch den Rahmen wiederverwendet wird erstellt, aber wenn Ich versuche zum Beispiel eine andere Instanz von Chrome oder Firefox hinzuzufügen, dann wird der Fehler ausgelöst – aozora
Ja, weil der Code beim zweiten Aufruf kein neues Profilobjekt erzeugt. Sie müssen das debuggen. –