如何使用Selenium WebDriver控制Firebug

7
我想在通过WebDriver运行测试时捕获Firebug的Net面板输出。我考虑使用NetExport将信息转储到har文件中来完成此操作。如何在使用“driver.get()”显示特定页面时激活Firebug以执行导出?

你使用的是什么编程语言?Java、C#还是其他的? - Ripon Al Wasim
2个回答

4

除了Firebug和NetExport,您还需要Firestarter扩展。以下是我在Ruby中的操作步骤:

profile = Selenium::WebDriver::Firefox::Profile.new

profile.add_extension "path/to/firebug.xpi"
profile.add_extension "path/to/fireStarter.xpi"
profile.add_extension "path/to/netExport.xpi")

profile['extensions.firebug.currentVersion']    = "1.7.0a3" # avoid 'first run' tab
profile["extensions.firebug.previousPlacement"] = 1
profile["extensions.firebug.onByDefault"]       = true
profile["extensions.firebug.defaultPanelName"]  = "net"
profile["extensions.firebug.net.enableSites"]   = true

profile["extensions.firebug.netexport.defaultLogDir"]          = output_dir
profile["extensions.firebug.netexport.alwaysEnableAutoExport"] = true

driver = Selenium::WebDriver.for :firefox, :profile => profile

Java有等效的API可用。确保扩展与彼此(以及您的Firefox版本)兼容。

如果您正在使用Ruby(或只是想快速从命令行启动HAR查看器),请查看我的HAR gem,以便以后更轻松地处理数据。


非常感谢您的指导@jarib。但是我无法让FirefoxDriver添加任何扩展程序。我不再看到“1.7.0a3”扩展程序了(所有1.7的东西都被称为1.7X.0a?,我下载了1.7X.0a3并将版本设置为相同)。addExtension方法也没有抛出任何异常。有人成功使用Java加载firebug扩展程序吗? - shanti
如前所述,XPI必须相互兼容并且与您当前的Firefox版本兼容 - 我使用1.7并不意味着它适合您。因此,请确保通过手动安装来确保所有内容都正常工作。如果它们不兼容,FirefoxProfile.addExtension不会抛出错误(它只是将文件复制到正确的位置),而Firefox将忽略不兼容的扩展。 - jarib
现在它已经可以工作了。我在其中一个选项中打错了字。我还需要在“driver.get()”调用后添加3秒的延迟,以便让netexport保存日志。非常感谢。 - shanti
我说话太快了。这个程序表现得不稳定。有时输出会被写出,有时则不会(大多数情况下都不会)。我发现网络面板显示第一个请求由于某种原因从未完成,例如如果我访问'faban.org',Firebug会在“时间轴”列中显示“获取faban.org”的旋转图标。这种情况发生在许多不同的网站上,当它发生时,我就无法获得har文件。可能是什么问题? - shanti

0

使用Java在Selenium WebDriver中运行Firebug:

Actions action = new Actions(driver);
action.sendKeys(Keys.F12).build().perform();

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接