使用FireFoxDriver进行WebDriver FireFoxProfile UserAgent切换

Gre*_*een 13 java user-agent webdriver selenium-webdriver

我想知道我是否可以动态更改用户代理配置文件,而无需创建ForeFoxDriver的新实例?我有以下代码,我可以传递给iphone或ipad的用户代理等.它工作正常,但我必须为每个测试创建一个新的实例,因为它打开/关闭浏览器很慢.例如,在使用iPhone用户代理进行测试后,我想将配置文件切换到Android用户代理或iPad用户代理,驱动程序是否可以选择更改此操作而无需创建新实例?

FirefoxProfile profile = new FirefoxProfile();
profile.setPreference("general.useragent.override","some user agent, like iphone or iPad");
WebDriver driver = new FirefoxDriver(profile);

// do some tests
// set profile to new user agent
// profile.setPreference("general.useragent.override","some android user agent");

// can i now set the driver to the new profile here and perform more tests on this same instance of the driver?
Run Code Online (Sandbox Code Playgroud)

Pav*_*rin 2

RemoteWebdriver(FirefoxDriver 的父类)仅在会话启动时(在构造函数中)更新功能映射。不幸的是我们无法在其他地方修改它。我认为这是一个非常好的主意。