Selenium 在尝试添加扩展时抛出错误 - “无法连接到二进制 FirefoxBinary”和“无法找到包含扩展 id 的节点”

2024-03-04

我试图让 Selenium 在测试时安装扩展。我正在使用最新的独立 JAR (selenium-server-standalone-2.26.0.jar)和 Firefox 17 来运行我的测试。当我不尝试添加扩展时,该程序可以完美运行。

我已经多次验证我尝试使用的扩展文件是否存在并且可以由程序访问,并且实际上包含有效的 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 Firefox\firefox.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:\Users\Vivek\AppData\Local\Temp\unzip3924903411706376479stream\install.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:\Users\Vivek\AppData\Local\Temp\unzip3924903411706376479stream\install.rdf

看起来您的扩展在 RDF 描述中缺少必需的“扩展 id”字段。

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

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Selenium 在尝试添加扩展时抛出错误 - “无法连接到二进制 FirefoxBinary”和“无法找到包含扩展 id 的节点” 的相关文章

随机推荐