selenium webdriver学习(十五)------------如何处理FirefoxProfile

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

 

什么是Firefox profile

要了解Firefox profile请访问这里,它详细解绍了Firefox proflie。在Firefox里,如何管理Firefox profile 请访问这里。看完它们,相信你对Firefox profile会有所了解。好了,必备的知识准备完了,让我们来看看selenium webdriver 是怎么操作Firefox profile的吧。

 

设置profile中的一个preference

Java代码   收藏代码
  1. FirefoxProfile profile = new FirefoxProfile();  
  2. profile.setPreference("aaa""bbbb");  
  3. 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)而已经存在了。我们用下面的方法:

 

Java代码   收藏代码
  1. ProfilesIni allProfiles = new ProfilesIni();  
  2. FirefoxProfile profile = allProfiles.getProfile("WebDriver");  
  3. WebDriver driver = new FirefoxDriver(profile);  

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

Java代码   收藏代码
  1. ProfilesIni allProfiles = new ProfilesIni();  
  2. FirefoxProfile profile = allProfiles.getProfile("default");  
  3. WebDriver driver = new FirefoxDriver(profile);  

 

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

 

Java代码   收藏代码
  1. File profileDir = new File("path/to/your/profile");  
  2. FirefoxProfile profile = new FirefoxProfile(profileDir);  
  3. WebDriver driver = new FirefoxDriver(profile);  

 

临时指定插件

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

 

Java代码   收藏代码
  1. File file = new File("<span style="background-color: #ffffff;">path/to/your/</span>firebug-1.8.1.xpi");  
Java代码   收藏代码
  1. FirefoxProfile firefoxProfile = new FirefoxProfile();  
  2. firefoxProfile.addExtension(file);  
  3. firefoxProfile.setPreference("extensions.firebug.currentVersion""1.8.1"); //避免启动画面  
  4. WebDriver driver = new FirefoxDriver(firefoxProfile);  

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

 

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

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

 

Java代码   收藏代码
  1. FirefoxProfile profile = new FirefoxProfile();  
  2. profile.setEnableNativeEvents(true);  
  3. WebDriver driver = new FirefoxDriver(profile);  

其它设置见selenium webdriver API中的org.openqa.selenium.firefox.FirefoxProfile.

 

 

启用firefox代理

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

 

Java代码   收藏代码
  1. String PROXY = "localhost:8080";//如果不是本机,localhost替换成IP地址  
  2.   
  3. org.openqa.selenium.Proxy proxy = new org.openqa.selenium.Proxy();  
  4. proxy.setHttpProxy(PROXY)  
  5.      .setFtpProxy(PROXY)  
  6.      .setSslProxy(PROXY);  
  7. DesiredCapabilities cap = new DesiredCapabailities();  
  8. cap.setPreference(CapabilityType.PROXY, proxy);  
  9. WebDriver driver = new FirefoxDriver(cap);  

 

over !

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
情分析以下错误:Exception in thread "main" org.openqa.selenium.NoSuchElementException: Unable to locate element: {"method":"id","selector":"search-input"} Command duration or timeout: 3.97 seconds For documentation on this error, please visit: http://seleniumhq.org/exceptions/no_such_element.html Build info: version: '2.40.0', revision: 'fbe29a9', time: '2014-02-19 20:54:28' System info: host: 'LAPTOP-34K1M0P4', ip: '192.168.32.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_201' Driver info: org.openqa.selenium.firefox.FirefoxDriver Capabilities [{applicationCacheEnabled=true, rotatable=false, handlesAlerts=true, databaseEnabled=true, version=13.0.1, platform=XP, browserConnectionEnabled=true, nativeEvents=false, acceptSslCerts=true, webStorageEnabled=true, locationContextEnabled=true, browserName=firefox, takesScreenshot=true, javascriptEnabled=true, cssSelectorsEnabled=true}] Session ID: 450cd28c-219b-444e-a9ff-427428c704f0 at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62) at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) at java.lang.reflect.Constructor.newInstance(Constructor.java:423) at org.openqa.selenium.remote.ErrorHandler.createThrowable(ErrorHandler.java:193) at org.openqa.selenium.remote.ErrorHandler.throwIfResponseFailed(ErrorHandler.java:145) at org.openqa.selenium.remote.RemoteWebDriver.execute(RemoteWebDriver.java:573) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:326) at org.openqa.selenium.remote.RemoteWebDriver.findElementById(RemoteWebDriver.java:367) at org.openqa.selenium.By$ById.findElement(By.java:214) at org.openqa.selenium.remote.RemoteWebDriver.findElement(RemoteWebDriver.java:318) at shiyan2.crawler.main(crawler.java:18) Caused by: org.openqa.selenium.remote.ErrorHandler$UnknownServerException: Unable to locate element: {"method":"id","selector":"search-input"} Build info: version: '2.40.0', revision: 'fbe29a9', time: '2014-02-19 20:54:28' System info: host: 'LAPTOP-34K1M0P4', ip: '192.168.32.1', os.name: 'Windows 10', os.arch: 'amd64', os.version: '10.0', java.version: '1.8.0_201' Driver info: driver.version: unknown at <anonymous class>.<anonymous method>(file:///C:/Users/Y/AppData/Local/Temp/anonymous3190348505889140058webdriver-profile/extensions/[email protected]/components/driver_component.js:8904) at <anonymous class>.<anonymous method>(file:///C:/Users/Y/AppData/Local/Temp/anonymous3190348505889140058webdriver-profile/extensions/[email protected]/components/driver_component.js:8913) at <anonymous class>.<anonymous method>(file:///C:/Users/Y/AppData/Local/Temp/anonymous3190348505889140058webdriver-profile/extensions/[email protected]/components/command_processor.js:10878) at <anonymous class>.<anonymous method>(file:///C:/Users/Y/AppData/Local/Temp/anonymous3190348505889140058webdriver-profile/extensions/[email protected]/components/command_processor.js:10883) at <anonymous class>.<anonymous method>(file:///C:/Users/Y/AppData/Local/Temp/anonymous3190348505889140058webdriver-profile/extensions/[email protected]/components/command_processor.js:10825)
05-15

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值