我想運行測試,以更改瀏覽器發送的http請求中的用戶代理(如FF插件,用戶代理切換器)。我看到你可以通過使用FF配置文件(http://seleniumhq.org/docs/09_webdriver.html)來做到這一點。Selenium-RC:有沒有辦法在不改變Firefox配置文件的情況下更改用戶代理
有沒有辦法在測試中做到這一點?類似的東西設置一個頭,而不是將它添加
我想運行測試,以更改瀏覽器發送的http請求中的用戶代理(如FF插件,用戶代理切換器)。我看到你可以通過使用FF配置文件(http://seleniumhq.org/docs/09_webdriver.html)來做到這一點。Selenium-RC:有沒有辦法在不改變Firefox配置文件的情況下更改用戶代理
有沒有辦法在測試中做到這一點?類似的東西設置一個頭,而不是將它添加
你可以插入這樣的功能,以動態更改用戶代理,你讓你的HTTP請求之前的功能addCustomRequestHeader()
:
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);
}
}
如果你使用Java中的Selenium 2 Web驅動程序,您可以創建Firefox配置文件並將代理程序字符串設置爲配置文件中的首選項。然後使用該配置文件來創建對象的webdriver:
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);
略多的信息和源代碼示例,請參閱Firefox的驅動程序硒的網絡驅動程序文件在http://seleniumhq.org/docs/03_webdriver.html#firefox-driver。
你會在哪裏插入這個功能? – cloakedninjas 2013-01-18 15:55:32