我想运行测试来更改从浏览器发送的 http 请求中的用户代理(就像 FF 插件,用户代理切换器一样)。我看到你可以通过使用 FF 配置文件(http://seleniumhq.org/docs/09_webdriver.html)来做到这一点。
有没有办法在测试中做到这一点?类似于addCustomRequestHeader()
设置标题而不是添加标题的函数
我想运行测试来更改从浏览器发送的 http 请求中的用户代理(就像 FF 插件,用户代理切换器一样)。我看到你可以通过使用 FF 配置文件(http://seleniumhq.org/docs/09_webdriver.html)来做到这一点。
有没有办法在测试中做到这一点?类似于addCustomRequestHeader()
设置标题而不是添加标题的函数
您可以在发出 http 请求之前插入这样的函数来动态更改用户代理:
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);
For slightly more information and source code examples, see the Selenium Web Driver documentation for Firefox Driver at http://seleniumhq.org/docs/03_webdriver.html#firefox-driver.