运行 Selenium 2 时在 Firefox 中激活 Firebug 的最佳方法是什么?
编辑:好的,我意识到“最好”是可以解释的,但是基于配置文件的解决方案在 selenium 1.0 中确实很痛苦。因此,在被证明更糟之前,任何替代方案都被认为是更好的;)
运行 Selenium 2 时在 Firefox 中激活 Firebug 的最佳方法是什么?
编辑:好的,我意识到“最好”是可以解释的,但是基于配置文件的解决方案在 selenium 1.0 中确实很痛苦。因此,在被证明更糟之前,任何替代方案都被认为是更好的;)
您可以在代码中创建您的个人资料并动态添加所需的附加组件。假设您将 Firebug XPI 作为 firebug.xpi 保存到 C:\FF_Profile 文件夹中(转到Firebug 下载页面,右键单击“添加到 Firefox”并另存为 C:\FF_Profile\firebug.xpi)。
在代码中:
final String firebugPath = "C:\\FF_Profile\\firebug.xpi";
FirefoxProfile profile = new FirefoxProfile();
profile.addExtension(new File(firebugPath));
// Add more if needed
WebDriver driver = new FirefoxDriver(profile);
您的意思是在 webdriver 启动的浏览器实例中安装了 firebug 吗?如果是这样,您可以在实例化驱动程序时传递扩展名,但最简单的方法是创建一个安装了 firebug 的 firefox 配置文件,然后在实例化驱动程序之前使用以下代码:
System.setProperty("webdriver.firefox.profile", "NAME_OF_FIREFOX_PROFILE_WITH_FIREBUG");
显然,在 Selenium WebDriver 中使用 firefox-profile 选项的方式已经改变。
旧命令行(Selenium RC):
java -jar selenium-2.28.0.jar -firefoxProfileTemplate ~/.mozilla/firefox/3knu5vz0.selenium
为 WebDriver 更新:(请注意,它需要配置文件名称而不是目录)
java -jar selenium-2.28.0.jar -Dwebdriver.firefox.profile=selenium
只需按名称引用您的个人资料。Ruby 中的示例:
@driver = Selenium::WebDriver.for :firefox, :profile => "default"
然后,正常加载 Firefox,并添加所需的扩展。它们现在将出现在您的 Selenium 测试运行中。
将您的 firefox 位置修改为 C:\Users\user-name\AppData\Roaming\Mozilla\Firefox\Profiles\sgmqi7hy.default 从 selenium / webdriver 启动您的 firefox 关闭所有必需的设置并从 selenium / webdriver 重新启动 firefox 浏览器就是这样,它解决了你的问题!
我在 ~/.mozialla/firefox/ 中找到了一个profiles.ini。其中有一个名为 default 的配置文件,我指定了一个如下所示的配置文件,然后在测试中打开 firefox,就像我定期打开它一样(使用所有插件等)。
java -jar selenium.jar -Dwebdriver.firefox.profile=default
我观察到萤火虫正在添加到浏览器中,当我在运行时使用 webdriver 将萤火虫添加到 firefox 时,它默认被禁用且未启用。因此,要使其启用,我们可能需要将以下行添加到配置文件中。
profile.setEnableNativeEvents(true);
如果上述选项均无效。然后试试这个。
火狐 -p
5) 现在通过 selenium 加载这个新配置文件,使用下面的 java 语句。
ProfilesIni 配置文件 = 新 ProfilesIni();
FirefoxProfile ffprofile = profile.getProfile("SELENIUM");
WebDriver driver = new FirefoxDriver(ffprofile);
6) 完成。享受。
假设已安装 Firebug。您的目标是运行 Firebug。Firebug 可以通过按 F12 键运行/执行。所以 Firebug 可以通过 Selenium WebDriver 和 Java 的以下命令运行:
Actions action = new Actions(driver);
action.sendKeys(Keys.F12).build().perform();