Selenium / Webdriver:使用现有的Firefox配置文件?

时间:2016-12-16 16:36:09

标签: perl firefox ssl

我使用Perl和Selenium / Webdriver编写用户界面测试。我知道我可以使用Selenium::Firefox::Profile模块为Firefox创建配置文件。

我想使用我的默认配置文件,或使用Firefox配置文件管理器创建的配置文件。是否可以使用现有的Firefox配置文件进行测试?

这不起作用:

my $ff_profile = Selenium::Firefox::Profile->new('default-1480098066829');

my $driver = Selenium::Remote::Driver->new(
    'remote_server_addr' => 'localhost',
    'browser_name'       => 'firefox',
    'firefox_profile'    => $ff_profile,
    'port'               => '5555',
    'marionette_enabled' => 1,
);

我的默认配置文件接受必须测试的Intranet页面的自签名SSL证书。当Webdriver使用新配置文件打开页面时,由于Firefox证书对话框而失败。

如果我无法使用我的默认配置文件,是否有办法将此证书添加到Webdriver的新配置文件中?

1 个答案:

答案 0 :(得分:0)

我没有使用Selenium::Firefox::Profile的经验,但查看the source,它没有提供任何使用现有配置文件设置的方法,但始终会使用Firefox' s默认设置,并允许通过调用set_preferenceset_boolean_preference

对其进行更改

显而易见的是new构造函数只需要参数哈希,并且该哈希的唯一重要元素是密钥profile_dir

这意味着您的通话Selenium::Firefox::Profile->new('default-1480098066829')将导致

  

哈希分配中奇数个元素

您应该在寻求帮助时报告。如果你没有看到那条消息,那么你就没有use warnings,这对你来说是非常破旧的

你可以尝试Selenium::Firefox::Profile->new( profile_dir => '<my Firefox profile folder>' ),但如果变化很大,我会感到惊讶。默认情况下,模块使用File::Temp创建新的临时文件夹并将新配置文件放在那里

您可能必须找到默认配置文件中缺少的选项的名称并明确添加它们,除非比我更了解的人有更好的想法