Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/selenium/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Selenium在尝试添加扩展时抛出错误-“;无法连接到二进制FirefoxBinary“;及;找不到包含扩展id的节点;_Selenium - Fatal编程技术网

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

Selenium在尝试添加扩展时抛出错误-“;无法连接到二进制FirefoxBinary“;及;找不到包含扩展id的节点;,selenium,Selenium,我试图让Selenium在测试时安装一个扩展。我正在使用最新的独立JAR(selenium-server-standalone-2.26.0.JAR)和Firefox17来运行测试。当我不尝试添加扩展时,该程序可以完美地工作 我已经多次验证我尝试使用的扩展文件是否存在,并且可以被程序访问,并且实际上包含有效的install.rdf,因为我使用它在默认Firefox配置文件中手动安装扩展 我的代码是: FirefoxProfile fp=new FirefoxProfile(); File ext

我试图让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 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
线程“pool-1-thread-2”org.openqa.selenium.WebDriverException中出现异常:无法连接到端口7055上的二进制FirefoxBinary(C:\Program Files(x86)\Mozilla Firefox\Firefox.exe);过程输出如下:
无效的
构建信息:版本:“2.26.0”,版本:“18041”,时间:“2012-11-01 19:33:38”
系统信息:os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:'1.7.0_02'
驱动程序信息:Driver.version:FirefoxDriver
位于org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:122)
位于org.openqa.selenium.firefox.FirefoxDriver.startClient(FirefoxDriver.java:243)
位于org.openqa.selenium.remote.RemoteWebDriver。(RemoteWebDriver.java:109)
位于org.openqa.selenium.firefox.FirefoxDriver(FirefoxDriver.java:189)
位于org.openqa.selenium.firefox.FirefoxDriver(FirefoxDriver.java:182)
位于org.openqa.selenium.firefox.FirefoxDriver(FirefoxDriver.java:178)
位于org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:95)
在TrafficGenerator.BrowserWindow.run(BrowserWindow.java:80)中
位于java.util.concurrent.ThreadPoolExecutor.runWorker(未知源)
位于java.util.concurrent.ThreadPoolExecutor$Worker.run(未知源)
位于java.lang.Thread.run(未知源)
原因:org.openqa.selenium.WebDriverException:org.openqa.selenium.WebDriverException:找不到包含扩展id的节点:C:\Users\Vivek\AppData\Local\Temp\unzip392490341170636479stream\install.rdf
构建信息:版本:“2.26.0”,版本:“18041”,时间:“2012-11-01 19:33:38”
系统信息:os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:'1.7.0_02'
驱动程序信息:Driver.version:FirefoxDriver
构建信息:版本:“2.26.0”,版本:“18041”,时间:“2012-11-01 19:33:38”
系统信息:os.name:'Windows 7',os.arch:'amd64',os.version:'6.1',java.version:'1.7.0_02'
驱动程序信息:Driver.version:FirefoxDriver
位于org.openqa.selenium.firefox.internal.FileExtension.readIdFromInstallRdf(FileExtension.java:141)
位于org.openqa.selenium.firefox.internal.FileExtension.writeTo(FileExtension.java:60)
位于org.openqa.selenium.firefox.FirefoxProfile.installExtensions(FirefoxProfile.java:465)
位于org.openqa.selenium.firefox.FirefoxProfile.layoutOnDisk(FirefoxProfile.java:443)
位于org.openqa.selenium.firefox.internal.NewProfileExtensionConnection.start(NewProfileExtensionConnection.java:77)
... 10多
使用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中安装扩展

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


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

如果您将Firefox版本降级为16,会发生什么情况?@Arran-同样的问题也会发生在FF 16和FF 9上。反复调试。注释掉除顶行以外的所有内容,看看是否失败。然后继续,直到成功。配置文件可能不是传递给驱动程序的合法对象。@Shawn-已经尝试过了。配置文件是有效的对象。如果将Firefox版本降级为16会发生什么?@Arran-同样的问题也会发生在FF 16和FF 9上。迭代调试。注释掉除顶行以外的所有内容,看看是否失败。然后继续,直到成功。配置文件可能不是传递给驱动程序的合法对象。@Shawn-已经尝试过了。配置文件是一个有效的对象。在这个问题中,我已经提到了手动执行扩展时,扩展安装正确。install.rdf文件中存在扩展名id字段。抱歉,没有注意到,您是否尝试使用xpi的绝对路径?如果只使用名称,它可能不起作用,因为您的应用程序工作目录可能不是您认为的目录,特别是当您从像Eclipse这样的IDE运行测试时。但是在其他地方可能缺少一个ID,您可以调试相应的selenium代码:是的,也尝试了绝对路径。我在问题中提到,程序可以访问该文件,并且我已经通过程序本身验证了该文件的存在。在问题中,我已经提到,手动执行扩展时,扩展安装正确。install.rdf文件中存在扩展名id字段。抱歉,没有注意到,您是否尝试使用xpi的绝对路径?如果只使用名称,它可能不起作用,因为您的应用程序工作目录可能不是您认为的目录,特别是当您从像Eclipse这样的IDE运行测试时。但是在其他地方可能缺少一个ID,您可以调试相应的selenium代码:是的,也尝试了绝对路径。我在问题中提到,程序可以访问该文件,并且我已经通过程序本身验证了它的存在。