【问题标题】:PHPUnit + Selenium: How to set Firefox about:config options?PHPUnit + Selenium:如何设置 Firefox about:config 选项?
【发布时间】:2014-07-24 18:43:29
【问题描述】:

使用 PHPUnit 和 Firefox 远程运行 Selenium 测试时,onChange 事件 are not fired as they are when a user is operating the browser

对此的解决方案似乎是在 Firefox 的首选项(即about:config)中将focusmanager.testmode 选项设置为true,正如Selenium bug report 中所建议的那样。

但是,所有示例都直接使用 Selenium,而我使用的是 PHPUnit,它有自己的 API,隐藏了 Selenium 内部。我不知道如何使用 PHPUnit 设置这个 Firefox 选项,所以我希望其他人能告诉我如何做到这一点!

(不,我不能进入 about:config 并自己手动设置它,因为每次运行测试时测试都会创建一个新的干净浏览器配置文件,因此任何手动配置更改都会丢失。)

【问题讨论】:

    标签: firefox selenium-webdriver phpunit


    【解决方案1】:

    感谢 Selenium 开发人员,我有一个解决方案!

    短版

    将其放入您的测试中,以便在 setUp() 函数中调用它:

    // Firefox mini-profile that sets focusmanager.testmode=true in about:config
    define('FIREFOX_PROFILE',
    'UEsDBAoAAAAAADqAxkSBK46tKgAAACoAAAAIABwAcHJlZnMuanNVVAkAA1BZkVM6WZFTdXgLAAEE
    6AMAAARkAAAAdXNlcl9wcmVmKCJmb2N1c21hbmFnZXIudGVzdG1vZGUiLCB0cnVlKTsKUEsBAh4D
    CgAAAAAAOoDGRIErjq0qAAAAKgAAAAgAGAAAAAAAAQAAAKSBAAAAAHByZWZzLmpzVVQFAANQWZFT
    dXgLAAEE6AMAAARkAAAAUEsFBgAAAAABAAEATgAAAGwAAAAAAA==');
    
    protected function setUp()
    {
        $this->setDesiredCapabilities(Array('firefox_profile' => FIREFOX_PROFILE));
    }
    

    这会将focusmanager.testmode 设置为true

    加长版

    您需要使用您想要设置的首选项创建自己的迷你 Firefox 配置文件,并在测试开始时传递它。操作方法如下:

    1. 创建一个新文件夹并将所需的文件放入 Firefox 配置文件中。这可以是任何东西(书签、扩展程序、您自己的个人资料的副本等),但我们需要的是一个名为 prefs.js 的文件,它存储了我们的 about:config 设置。

    2. 在此文件夹中创建prefs.js,内容如下:

      user_pref("focusmanager.testmode", true);
      
    3. 压缩文件夹(prefs.js 应该在存档的根目录中),并对其进行 base64 编码。

    如果你使用的是 Linux,你可以这样做:

    mkdir firefox-profile
    cd firefox-profile
    echo 'user_pref("focusmanager.testmode", true);' >> prefs.js
    zip -r ../firefox-profile.zip *
    base64 < ../firefox-profile.zip
    

    然后按照上面的简短版本,取 base64 值并将其设置为“firefox_profile”功能。

    【讨论】:

    • 谢谢你。我花了 2 天时间寻找这个解决方案。现在我可以将 Firefox 连接到代理服务器了 :)
    猜你喜欢
    • 2019-04-12
    • 1970-01-01
    • 2017-03-31
    • 1970-01-01
    • 2017-05-29
    • 2018-10-05
    • 2015-02-21
    • 1970-01-01
    相关资源
    最近更新 更多