这一节主要涉及 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("path/to/your/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 学习知识点概览 #### 1. Selenium WebDriver 概述 Selenium WebDriver 是 Selenium 家族的一部分,用于自动化Web应用测试。与早期的Selenium RC相比,WebDriver 提供了更强大的功能和更...
第十二章详细讲解了如何使用Selenium WebDriver处理表格数据。表格在Web应用中极为常见,而有效地与之交互则是自动化测试的一个关键方面。 **处理表格的方法**: - 获取表格中的所有行和列。 - 根据条件筛选表格中...
### Selenium WebDriver 学习知识点概览 #### 1. Selenium WebDriver 概述 - **定义**: Selenium WebDriver 是一种用于自动化 Web 测试的工具,能够直接与浏览器交互,并且支持多种编程语言,例如 Java、Python、C#...
adds an option to the .NET FirefoxProfile class so that the driver will not delete the anonymous profile created by the driver. Since the driver cannot and should not use an existing profile in ...
from selenium.webdriver.firefox.firefox_profile import FirefoxProfile profile = FirefoxProfile() profile.set_preference('network.proxy.type', 1) profile.set_preference('network.proxy.http', '1.9.171....
2. **使用 WebDriver 打开浏览器**:通过调用 WebDriver 的相应方法,如 `FirefoxDriver()` 或 `ChromeDriver()`,可以启动指定的浏览器实例。 3. **打开测试页面**:利用 `get()` 方法,可以将浏览器导航到指定的...
- **Firefox**: 通过`WebDriver driver = new FirefoxDriver();`创建一个新的Firefox实例。 - **Internet Explorer (IE)**: 使用`WebDriver driver = new InternetExplorerDriver();`创建新的IE实例。 - **...
1. Selenium WebDriver:Selenium是一个强大的Web自动化测试框架,提供了WebDriver接口,让我们能够用多种编程语言(如Java、Python、C#等)与Firefox等浏览器进行交互。 2. GeckoDriver:Firefox从版本48开始引入...
FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("browser.download.folderList", 2); DesiredCapabilities capabilities = DesiredCapabilities.firefox(); capabilities.setCapability...
FirefoxProfile profile = new FirefoxProfile(); profile.setPreference("general.useragent.override", "Mozilla/5.0 (Windows NT 10.0; Win64; x64)"); WebDriver driver = new FirefoxDriver(profile); ``` ...
from selenium.webdriver.FirefoxProfile import FirefoxProfile from selenium.webdriver import Firefox options = FirefoxOptions() options.add_argument('--proxy-server=%s' % '192.168.1.1:8080') # ...
- **配置 Firefox Profile**:通过 `FirefoxProfile` 类自定义 Firefox 的配置。 #### 第5章 封装与重用 - **封装**:将常用的 WebDriver 操作封装成函数或类,提高代码的可维护性和重用性。 - **重用**:利用已有...
profile = webdriver.FirefoxProfile(profile_directory) 4.带着加载项启动火狐浏览器 driver = webdriver.Firefox(profile) 5.访问已经记住密码的网址 总结 使用该脚本时,火狐浏览器一定要先关闭
Selenium 提供了一系列异常类型来处理常见的错误情况,如 `NoSuchElementException`、`ElementNotVisibleException` 等: ```python try: element = driver.find_element_by_id("nonexistent") except ...
import org.openqa.selenium.firefox.FirefoxProfile; public class CustomFirefoxProfileExample { public static void main(String[] args) { // 创建一个Firefox配置文件实例 FirefoxProfile profile = new...
【Selenium-ATDD】是一种基于自动化测试驱动开发(ATDD)原则的工具,它结合了Selenium WebDriver的强大功能,用于实现高效的Web应用程序自动化测试。Selenium是一个开源的浏览器自动化框架,支持多种编程语言,包括...
在Selenium 3之前,Firefox的自动化主要通过旧版的Firefox Profile和FirefoxDriver来实现。但是从Selenium 3开始,为了支持W3C WebDriver标准,Mozilla引入了GeckoDriver作为新的中间件,使得Selenium能够与使用 ...