我想运行一些测试来更改从浏览器发送的http请求中的用户代理(就像FF附加组件、用户代理切换器所做的那样)。我看到你可以通过使用FF配置文件(http://seleniumhq.org/docs/09_webdriver.html)做到这一点。
有没有办法在测试中做到这一点?类似于函数addCustomRequestHeader()
,它设置一个头而不是添加它
发布于 2011-01-21 01:32:11
在发出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);
}
}
发布于 2012-08-09 04:30:09
如果您在Java中使用Selenium 2Web驱动程序,则可以创建一个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);
有关更多信息和源代码示例,请参阅http://seleniumhq.org/docs/03_webdriver.html#firefox-driver上针对Firefox驱动程序的Selenium Web Driver文档。
https://stackoverflow.com/questions/2501788
复制相似问题