Selen-rc: Gibt es einen Weg, um die User-Agenten zu ändern, ohne das Firefox-Profil zu ändern

StackOverflow https://stackoverflow.com/questions/2501788

  •  21-09-2019
  •  | 
  •  

Frage

Ich möchte Tests ausführen, die User-Agent in der HTTP-Anforderung vom Browser (wie die FF Add-on, Switcher User-Agent der Fall ist) gesendet ändern. Ich sah Sie es durch das Spiel mit dem FF-Profil tun können ( http://seleniumhq.org/docs/09_webdriver .html ).

Gibt es eine Möglichkeit, es in einem Test zu tun? So etwas wie die Funktion addCustomRequestHeader(), die einen Header eher setzt, als es das Hinzufügen

War es hilfreich?

Lösung

Sie können eine Funktion wie diese legen Sie den User-Agent on the fly zu ändern, bevor Sie Ihre HTTP-Anforderung machen:

function changeuserAgent() {

    var altuserAgentGetter = function () {
        return "Mozilla/5.0 (Windows; U; Windows NT 6.1; en-US; rv:1.9.2) Gecko/20100115 <choose your string>";
    };

    if (Object.defineProperty) {
        Object.defineProperty(navigator, "userAgent", {
            get: altuserAgentGetter
        });
    }
    else if (Object.prototype.__defineGetter__) {
        navigator.__defineGetter__("userAgent", altuserAgentGetter);
    } 
}

Andere Tipps

Wenn Sie die Selenium 2 Web-Treiber in Java verwenden, können Sie ein Firefox-Profil erstellen und den Agenten-String als bevorzugt im Profil festgelegt. Dann das Profil verwenden, um das WebDriver Objekt zu erstellen:

    FirefoxProfile profile = new FirefoxProfile();
    profile.setPreference("general.useragent.override", "Mozilla/5.0 (iPad; U; CPU OS 4_3 like Mac OS X; de-de) AppleWebKit/533.17.9 (KHTML, like Gecko) Version/5.0.2 Mobile/8F191 Safari/6533.18.5");
    WebDriver driver = new FirefoxDriver(profile);

Für etwas mehr Informationen und Quellcode-Beispiele finden Sie in der Selenium Web-Treiber-Dokumentation Firefox-Treiber http://seleniumhq.org/docs/03_webdriver.html#firefox-driver .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top