自从更新到Firefox 12后,每次我使用Selenium(在python和Mac OS 10.7中)启动具有特定配置文件的Firefox时,它会弹出“检查附加组件的兼容性”对话框,有时这个对话框会永远保持不变我必须强制退出它。在强制退出之后,Firefox的新实例将继续启动并成功完成Selenium脚本的其余部分。
我尝试将extensions.checkCompatibility
设为false
。如果我正常启动Firefox,这会修复它,但如果我使用Selenium启动它则不行。有关如何抑制此对话框的任何想法?谢谢!
答案 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,始终检查现有插件是否与现有版本兼容。