如何在Firefox中使用Selenium来抑制“检查加载项的兼容性”对话框?

时间:2012-07-29 00:25:37

标签: firefox selenium firefox-addon

自从更新到Firefox 12后,每次我使用Selenium(在python和Mac OS 10.7中)启动具有特定配置文件的Firefox时,它会弹出“检查附加组件的兼容性”对话框,有时这个对话框会永远保持不变我必须强制退出它。在强制退出之后,Firefox的新实例将继续启动并成功完成Selenium脚本的其余部分。

我尝试将extensions.checkCompatibility设为false。如果我正常启动Firefox,这会修复它,但如果我使用Selenium启动它则不行。有关如何抑制此对话框的任何想法?谢谢!

3 个答案:

答案 0 :(得分:5)

只要Firefox更新,此对话框仅显示一次。每次为您显示的原因可能是Selenium每次都会创建一个新的配置文件。如果您将extensions.lastAppVersion首选项设置为"12.0"(或当前的Firefox版本),则Firefox将不再认为它已更新且不会显示此对话框。但是,添加extensions.showMismatchUI首选项并将其设置为false应该更容易,这将取消此对话框(但不会禁止其他升级操作)。

Side-note extensions.checkCompatibility首选项不再以Firefox 3.6开头,它是当前Firefox版本中特定于版本的首选项。因此,您必须设置extensions.checkCompatibility.12.0首选项。这会完全禁用扩展的兼容性检查,而不仅仅是您关注的对话框。

答案 1 :(得分:1)

  

我尝试将extensions.checkCompatibility设置为false。如果我正常启动Firefox,这会修复它,但如果我使用Selenium启动它则不行。

使用Selenium启动它时不会的原因是Firefox驱动程序将在临时文件目录中创建临时配置文件,从而减慢测试速度并占用不必要的空间。

为测试目的创建配置文件并设置所需内容。有关创建SeleniumProfile的完整说明,请访问https://support.mozilla.org/en-US/kb/profile-manager-create-and-remove-firefox-profiles

在Java中,我有以下内容:

protected WebDriver createFirefoxDriver() {     
    File proFile = new File("C:\\Users\\<username>\\AppData\\Roaming\\Mozilla\\Firefox\\Profiles\\xxxxxx42.SeleniumProfile");
    FirefoxProfile ffProfile = new FirefoxProfile(proFile);
    WebDriver ffDriver = new FirefoxDriver(ffProfile);

    return ffDriver;
}

答案 2 :(得分:0)

执行此操作以删除“检查插件的兼容性”对话框。这基于Windows操作系统..

创建一个临时FF配置文件并使用下面显示的配置文件启动服务器。

java -jar selenium-server-x.x.x.jar -firefoxProfileTemplate "/path/to/the/temp/profile"

现在使用以下代码。

import com.thoughtworks.selenium.*;
public class Test {

public static void main(String ar[]) {

Selenium sel = new DefaultSelenium("localhost", 4444, "*firefox", "http://www.google.com/");

sel.start();
}
}

现在,在“运行”命令中键入“%TEMP%”,您可以看到一个与selenium会话同名的文件夹。复制文件夹内容并将其替换为临时配置文件内容。

按照以下步骤删除Addons兼容性。
1。创建一个新的FF配置文件 2。根据所需设置设置FF配置文件 3。只需运行一个selenium示例程序就可以调用firefox 4。现在,您可以在sytsem中的某处找到与Selenium Session同名的文件夹。 (最有可能在保存临时内容的目录中)
5。复制文件夹内容并将其替换为新创建的配置文件。

现在,您可以在需要时使用新创建的配置文件。每当更新FF时,通过一次使用配置文件调用firefox,始终检查现有插件是否与现有版本兼容。