selenium webdriver学习 15 – 如何处理FirefoxProfile

这一节主要涉及 selenium webdriver处理Firefox profile的一些知识。

什么是Firefox profile

要了解Firefox profile请访问这里(http://support.mozilla.org/zh-CN/kb/%E7%94%A8%E6%88%B7%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6),它详细解绍了Firefox proflie。在Firefox里,如何管理Firefox profile 请访问这里(http://support.mozilla.org/zh-CN/kb/%E7%AE%A1%E7%90%86%E7%94%A8%E6%88%B7%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6)。看完它们,相信你对Firefox profile会有所了解。好了,必备的知识准备完了,让我们来看看selenium webdriver 是怎么操作Firefox profile的吧。

设置profile中的一个preference

FirefoxProfile profile = new FirefoxProfile(); 
profile.setPreference("aaa", "bbbb"); 
WebDriver driver = new FirefoxDriver(profile); 

以上代码在Firefox Profile文件中设置一个名aaa,值为bbb的preference.(ps:这个preference只是一个举例,没有任何意义。要看 firefox profile有哪些preference,可以在firefox浏览器地址栏中输入:about:config). 代码运行后,在firefox浏览器地址栏中输入:about:config,可以看到它。

启用已经存在的profile

首先来了解一下为什么要已经存在的profile,其中一个原因是已经存在的profile里面保存有cookie等信息,可以保持用户的登录状态。
启动已经存在的profile,因profile不同而有两种方法。一种是如果这个profile使用firefox配置管理器(Firefox’s profile manager)而已经存在了。我们用下面的方法:

ProfilesIni allProfiles = new ProfilesIni(); 
FirefoxProfile profile = allProfiles.getProfile("WebDriver"); 
WebDriver driver = new FirefoxDriver(profile); 

如果你想启动你平时用的firefox浏览器,可以把上面”WebDriver”替换成”default”,代码如下:

ProfilesIni allProfiles = new ProfilesIni(); 
FirefoxProfile profile = allProfiles.getProfile("default"); 
WebDriver driver = new FirefoxDriver(profile); 

另一种是没有在自己的firefox里面注册过的,比如从另一台机子中的firefox得到的,我们可以用下面的代码:

File profileDir = new File("path/to/your/profile");  
FirefoxProfile profile = new FirefoxProfile(profileDir);  
WebDriver driver = new FirefoxDriver(profile);  

临时指定插件

有时我们需要临时让启动的firefox带一个插件,如firebug,来定位问题等。首先我们要下载这个插件的xpi安装包。剩下的就让selenium webdriver 来完成,如下:

File file = new File("<span style="background-color: rgb(255, 255, 255);">path/to/your/</span>firebug-1.8.1.xpi"); 
 
FirefoxProfile firefoxProfile = new FirefoxProfile(); 
firefoxProfile.addExtension(file); 
firefoxProfile.setPreference("extensions.firebug.currentVersion", "1.8.1"); //避免启动画面 
WebDriver driver = new FirefoxDriver(firefoxProfile); 

这样启动的firefox中就安装了插件firebug.

启用默认情况下被firefox禁用的功能

以本地事件例,很简单直接设置为true就可以了。

FirefoxProfile profile = new FirefoxProfile(); 
profile.setEnableNativeEvents(true); 
WebDriver driver = new FirefoxDriver(profile); 

其它设置见selenium webdriver

API(http://selenium.googlecode.com/svn/trunk/docs/api/java/index.html)中的org.openqa.selenium.firefox.FirefoxProfile.

启用firefox代理

这个更简单,直接上代码了。

String PROXY = "localhost:8080";//如果不是本机,localhost替换成IP地址 
 
org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy(); 
proxy.setHttpProxy(PROXY) 
     .setFtpProxy(PROXY) 
     .setSslProxy(PROXY); 
DesiredCapabilities cap = new DesiredCapabailities(); 
cap.setPreference(CapabilityType.PROXY, proxy); 
WebDriver driver = new FirefoxDriver(cap); 

over !

[转自网络]

发表评论

电子邮件地址不会被公开。

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据