2016-12-16 86 views
1

我用Perl和硒/ webdriver的编写用户界面测试。我知道我可以使用Selenium::Firefox::Profile模块为Firefox创建配置文件。Selenium/Webdriver:使用现有的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, 
); 

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

如果我不能用我的默认配置文件,是有一些方法来将此证书添加到webdriver的新的个人资料?

+0

很多次我们看到***不起作用***作为解释问题,我不明白为什么。没有人叫他们的服务站,并问*“我的车不工作,你认为什么是错的?”*那么为什么软件得到同样的待遇?你还可以说*你的意思是“因为Firefox证书对话框而失败”*? – Borodin

+0

Firefox将显示未知自签名证书的警告页面,此页面导致webdriver错误: 执行命令时出错:get:处理命令时出现未知的服务器端错误:Reached error page:about:certerror? e = nssBadCert&u = https:// ... –

+0

你的软件用什么调用来提升错误,什么是返回值和错误字符串? – Borodin

回答

0

我使用Selenium::Firefox::Profile没有经验,但看着the source,它并没有提供使用现有的配置文件的设置的任何方式,但总是会使用Firefox的默认设置,并允许通过电话进行到变化到set_preferenceset_boolean_preference

什么是明确的是在new构造仅期望的参数的散列值,并且散列的唯一显著元素具有关键profile_dir

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

odd number of elements in hash assignment

,当你请求别人的帮助,你应该报道。如果你没有看到这条消息,那么你没有use warnings到位,这将是相当破旧的你

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

您可能必须找到默认配置文件中缺少的选项的名称,并明确添加它们,除非有人更多知识渊博,比我有更好的主意

相关问题