selenium webdriver学习(十五)------------如何处理FirefoxProfile
来源:互联网 发布:张信哲唱功知乎 编辑:程序博客网 时间:2024/05/17 22:37
这一节主要涉及 selenium webdriver处理Firefox profile的一些知识。
什么是Firefox profile
要了解Firefox profile请访问这里,它详细解绍了Firefox proflie。在Firefox里,如何管理Firefox profile 请访问这里。看完它们,相信你对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中的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 !
- selenium webdriver学习(十五)------------如何处理FirefoxProfile
- selenium webdriver学习(十五)------------如何处理FirefoxProfile
- selenium webdriver学习(十四)------------如何处理table
- selenium webdriver学习(十二)------------如何利用selenium-webdriver截图
- selenium webdriver学习(七)------------如何处理alert、confirm、prompt对话框
- selenium webdriver学习(七)------------如何处理alert、confirm、prompt对话框
- selenium webdriver学习(一)---如何处理alert、confirm、prompt对话框
- selenium webdriver学习(5)-iframe的处理
- selenium webdriver学习(五)------------iframe的处理
- selenium webdriver学习(十八)----------构建webdriver
- Selenium WebDriver如何处理单选框和多选框
- 如何得到Selenium2/Webdriver: FirefoxProfile设置属性的key-value
- selenium webdriver学习(六)------------如何得到弹出窗口
- selenium webdriver学习(八)------------如何操作select下拉框
- selenium webdriver学习(九)------------如何操作cookie
- selenium webdriver学习(八)------------如何操作select下拉框
- selenium webdriver学习--------iframe的处理
- Selenium Webdriver (学习笔记)
- BrainFuck语言的解释器以及中文录入
- HashMap<String,String>与for合作查询和for嵌套循环查询的差别和效率
- C#异步委托的使用
- linux下的软件安装的简单原理
- [Win32]服务器端程序
- selenium webdriver学习(十五)------------如何处理FirefoxProfile
- 技术博客
- Silverlight多重表头
- n个人围成一圈报数问题
- php 与 oracle11g 基本操作
- Java的序列化和反序列化
- mvc3[2]写代码规范
- mysql 安装问题回顾
- php与oracle11g经典分页