Selenium 在尝试添加扩展时引发错误 - "Failed to connect to binary FirefoxBinary"和"Cannot locate node containing e



我正在尝试让Selenium在测试时安装一个扩展。我使用最新的独立JAR(selenium-server-standalone-2.26.0.jar)和Firefox17来运行我的测试。当我不想添加扩展时,这个程序运行得很好。

我已经多次验证,我试图使用的扩展文件存在,并且可以被程序访问,并且实际上包含有效的install.rdf,因为我使用它在默认的Firefox配置文件中手动安装扩展。

我的代码是:

FirefoxProfile fp=new FirefoxProfile();
File ext=new File("myext-2.17.xpi");
try {
fp.addExtension(ext);
fp.setPreference("extensions.myext.version", "myext-2.17");
} catch (Exception e2) {
e2.printStackTrace();
}
WebDriver wd=new FirefoxDriver(fp);

完整堆栈跟踪如下:

Exception in thread "pool-1-thread-2" org.openqa.selenium.WebDriverException: Failed to connect to binary FirefoxBinary(C:Program Files (x86)Mozilla Firefoxfirefox.exe) on port 7055; process output follows: 
null
Build info: version: '2.26.0', revision: '18041', time: '2012-11-01 19:33:38'
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_02'
Driver info: driver.version: FirefoxDriver
at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:122)
at org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:243)
at org.openqa.selenium.remote.RemoteWebDriver.<init>(RemoteWebDriver.java:109)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:189)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:182)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:178)
at org.openqa.selenium.firefox.FirefoxDriver.<init>(FirefoxDriver.java:95)
at TrafficGenerator.BrowserWindow.run(BrowserWindow.java:80)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Caused by: org.openqa.selenium.WebDriverException: org.openqa.selenium.WebDriverException: Cannot locate node containing extension id: C:UsersVivekAppDataLocalTempunzip3924903411706376479streaminstall.rdf
Build info: version: '2.26.0', revision: '18041', time: '2012-11-01 19:33:38'
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_02'
Driver info: driver.version: FirefoxDriver
Build info: version: '2.26.0', revision: '18041', time: '2012-11-01 19:33:38'
System info: os.name: 'Windows 7', os.arch: 'amd64', os.version: '6.1', java.version: '1.7.0_02'
Driver info: driver.version: FirefoxDriver
at org.openqa.selenium.firefox.internal.FileExtension.readIdFromInstallRdf(FileExtension.java:141)
at org.openqa.selenium.firefox.internal.FileExtension.writeTo(FileExtension.java:60)
at org.openqa.selenium.firefox.FirefoxProfile.installExtensions(FirefoxProfile.java:465)
at org.openqa.selenium.firefox.FirefoxProfile.layoutOnDisk(FirefoxProfile.java:443)
at org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:77)
... 10 more

使用FF16和FF9时也存在错误。关于错误的原因是什么以及我如何修复它,有什么想法吗?

Caused by: org.openqa.selenium.WebDriverException: org.openqa.selenium.WebDriverException: Cannot locate node containing extension id: C:UsersVivekAppDataLocalTempunzip3924903411706376479streaminstall.rdf

您的扩展在RDF描述中似乎缺少一个必需的"扩展id"字段。

您可以尝试在没有扩展的情况下启动Firefox,并尝试在没有硒的情况下将扩展安装在正在运行的Firefox中。

最新更新