如何在 Selenium WebDriver (Selenium 2) 中运行 Firebug?
-
26-09-2019 - |
题
运行 Selenium 2 时在 Firefox 中激活 Firebug 的最佳方法是什么?
编辑:好吧,我意识到“最好”是可以解释的,但是基于配置文件的解决方案对于 selenium 1.0 来说确实是一个痛苦。因此,任何替代方案都被认为更好,直到被证明更糟糕;)
解决方案
您可以在代码中创建您的配置文件并动态添加所需的附加组件。假设您将 Firebug XPI 作为 firebug.xpi 保存到 C:\FF_Profile 文件夹中(转到 萤火虫下载页面, ,右键单击“添加到 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启动?如果是这样,您可以在实例化驱动程序,但eaisest方法是创建安装萤火火狐配置文件,然后使用下面的代码实例化驱动程序之前通过一个扩展:
System.setProperty("webdriver.firefox.profile", "NAME_OF_FIREFOX_PROFILE_WITH_FIREBUG");
只需通过名称来引用您的个人资料。实施例在红宝石:
@driver = Selenium::WebDriver.for :firefox, :profile => "default"
然后,加载的Firefox正常,并添加所需的扩展。现在,他们会在你的Selenium测试运行显示。
显然,火狐轮廓选项被消耗在硒的webdriver已经改变的方式。
在老的命令行(硒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
修改Firefox的位置类似 C:\用户\用户名\ AppData \漫游\ Mozilla的\火狐\ Profiles文件\ sgmqi7hy.default 硒/ webdriver的推出你的Firefox 让所有所需的设置 关闭并重新启动Firefox浏览器从硒/ webdriver的 就是这样,它解决您的问题!
我发现了一个在profiles.ini〜/ .mozialla /火狐/。在有一个叫默认简档,这是我所指定的像以下,然后火狐在测试就像我定期打开它打开(所有的插件等)。
java -jar selenium.jar -Dwebdriver.firefox.profile=default
如果没有上述选项的工作。那就试试这个。
- 1)开端和类型下的命令(关闭所有现有firefox 会议第一次)
firefox-p
- 2)这将打开一个选项,以创建一个新的火狐配置文件。
- 3)创建一个文件可以说"硒".
- 4)一旦firefox是开直接安装萤火或任何 其他插件的扩展。一旦完成接近的窗口。
5),现在载入这个新通过的硒,使用以下java 发言。
ProfilesIni档=new ProfilesIni();
FirefoxProfile ffprofile=配置文件。getProfile("硒");
WebDriver驱动程序=new FirefoxDriver(ffprofile);
6)完成。享受。
我观察到的萤火虫被添加到浏览器,它是由默认禁用,未启用,当我使用的webdriver在运行时添加萤火到Firefox。因此,为了使这使我们可以根据需要添加以下行到配置文件。
profile.setEnableNativeEvents(true);
假设,萤火虫安装。你的目标是运行Firebug的。萤火虫可以运行/按F12键执行。所以萤火虫可以按照与Java硒的webdriver的命令运行:
Actions action = new Actions(driver);
action.sendKeys(Keys.F12).build().perform();