我使用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的新配置文件中?
答案 0 :(得分:0)
我没有使用Selenium::Firefox::Profile
的经验,但查看the source,它没有提供任何使用现有配置文件设置的方法,但始终会使用Firefox' s默认设置,并允许通过调用set_preference
和set_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
创建新的临时文件夹并将新配置文件放在那里
您可能必须找到默认配置文件中缺少的选项的名称并明确添加它们,除非比我更了解的人有更好的想法