本文主要介绍了如何在使用Selenium WebDriver进行自动化测试时,创建和使用自定义的Firefox配置文件。
什么是Firefox配置文件?
Firefox会将用户的个人信息,如书签、密码和用户偏好设置存储在一个称为配置文件的文件集合中,这些文件存储的位置与Firefox程序文件是分开的。你可以拥有多个Firefox配置文件,每个配置文件都包含一套不同的用户信息。配置文件管理器允许你创建、删除、重命名和切换配置文件。
为什么需要新的配置文件?
默认的Firefox配置文件并不非常适合自动化测试。当你想在Firefox浏览器上可靠地运行自动化测试时,建议创建一个单独的配置文件。自动化配置文件应该轻量级,加载速度快,并且具有特殊的代理和其他设置,以便更好地进行测试。
你应该在所有开发和测试执行机器上使用一致的配置文件。如果你在不同地方使用了不同的配置文件,那么接受的SSL证书或安装的插件会不同,这会使测试在不同的机器上有不同的表现。
在许多情况下,为了使测试执行更加可靠,你需要在配置文件中包含一些特殊设置。最常见的例子是SSL证书设置或处理自签名证书的浏览器插件。创建一个能够处理这些特殊测试需求的配置文件,并将其打包部署与测试执行代码一起是有意义的。你应该使用一个非常轻量级的配置文件,只包含执行所需的设置和插件。每次Selenium启动一个新的会话驱动Firefox实例时,它都会在某个临时目录中复制整个配置文件,如果配置文件很大,这不仅会使它变慢,还会使其变得不可靠。
查找你的配置文件夹
你的配置文件夹的位置取决于你所使用的操作系统。下表显示了默认配置文件的典型位置:
操作系统 | 配置文件夹路径 |
---|---|
Windows XP / 2000 / Vista / 7 | %AppData%\Mozilla\Firefox\Profiles\xxxxxxxx.default |
Linux | ~/.mozilla/firefox/xxxxxxxx.default/ |
Mac OS X | ~/Library/Application Support/Firefox/Profiles/xxxxxxxx.default/ |
表中有两个值得注意的地方。第一个是配置文件名前的“xxxxxxxx”字符串。这个字符串实际上是一组8个随机的数字和字符,用来确保每个配置文件都是唯一的。Firefox会自动为任何新配置文件加上一个随机化的字符串,因此你不必担心创建这部分名称。
第二个值得注意的地方在于Windows XP / 2000 / Vista / 7的路径中的“%AppData%”字符串。这个字符串实际上是一个特殊的Windows变量,指向你的“应用程序数据”路径。这通常是这样的形式:C:\Documents and Settings\{用户名}\Application Data
。
创建一个新的配置文件
创建一个新的Firefox配置文件并在测试脚本中使用它包括三个步骤的过程。首先,你需要启动配置文件管理器;其次,创建一个新的配置文件;最后,在测试脚本中使用这个配置文件。
步骤1:启动配置文件管理器
-
在Firefox窗口的顶部,点击文件菜单,然后选择退出。
-
按下
+ R
或点击Windows开始菜单(左下角的按钮),然后选择运行。
-
在运行对话框中,输入
firefox.exe -p
,然后点击确定。
-
“选择用户配置文件”窗口如下所示。
注意:如果配置文件管理器窗口没有出现,它可能是在后台打开的。你需要正确地关闭它,可以使用Ctrl+Alt+Del程序来终止它。如果它仍然没有打开,则可能需要指定Firefox程序的完整路径,用引号括起来;例如:
- 对于32位Windows:
"C:\Program Files\Mozilla Firefox\firefox.exe" -p
- 对于64位Windows:
"C:\Program Files (x86)\Mozilla Firefox\firefox.exe" -p
步骤2:创建配置文件
-
在弹出的“Firefox - 选择用户配置文件”窗口中点击“创建配置文件…”按钮。
-
在弹出的“创建配置文件向导”窗口中点击“下一步 >”。
-
在“输入新的配置文件名称”框中输入一个新名称,例如
profileToolsQA
,然后点击“完成”。
“选择用户配置文件”窗口将显示新创建的配置文件列表。
点击“启动Firefox”框。Firefox将以新配置文件启动。
注意:你会注意到新的Firefox窗口不会显示任何书签和收藏夹图标。
注意:最后一次选择的配置文件将在下次启动Firefox时自动启动,你需要再次启动配置文件管理器来切换配置文件。
步骤3:在Selenium中使用自定义配置文件
一旦自动化配置文件创建完毕,就需要在测试脚本中调用它。你现在可以在测试脚本中添加以下代码来实例化Firefox驱动程序:
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.firefox.FirefoxProfile;
import org.openqa.selenium.firefox.ProfilesIni;
import org.openqa.selenium.WebDriver;
public class CustomProfileExample {
public static void main(String[] args) {
ProfilesIni profile = new ProfilesIni();
FirefoxProfile myprofile = profile.getProfile("profileToolsQA");
WebDriver driver = new FirefoxDriver(myprofile);
// 你可以在这里添加更多的代码来驱动浏览器进行测试
}
}
通过这种方式,你可以创建一个适合自动化测试需求的Firefox配置文件,并在Selenium WebDriver中使用它来定制浏览器的行为。这对于确保自动化测试的一致性和可靠性非常重要。