如何使用perl为Firefox添加extra_capabilities与硒进行测试? [英] How can I add extra_capabilities for firefox to test with selenium using perl?

查看:65
本文介绍了如何使用perl为Firefox添加extra_capabilities与硒进行测试?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我已经能够按照以下方式设置此参数(例如下载文件夹)并提示下载(或者类似,因为我没有正确的代码知道):

I have been able to set this parameters like download folder and prompt for download in the following manner (Or similar, as I don't have that code right know):

 'extra_capabilities' => {
   'chromeOptions' => {
       'prefs' => {
           'download.default_directory' => '/Users/User/Desktop/my_folder',
           "download.prompt_for_download" => 0,
           "download.directory_upgrade" => 1,
       }
   },
   'binaray' => '/Users/User/Applications/Chromium',

}

我一直在尝试使用firefox做同样的事情,但是我无法在任何地方获得这些属性。在其他问题中,我发现的唯一代码是使用某些配置文件对象的Java代码,我认为它不适用于perl。

I've been trying to do the same with firefox but I have not been able to get those properties anywhere. The only code I've found in other questions is for java using some profile objects which I think it's not available for perl.

这是我尝试的简化版本,但似乎不起作用。但是它也不会产生异常:

This is a simplified version of my attempt but it doesn't seem to work. But it does not generate an exception either:

use Selenium::Firefox;
use strict;
use warnings;
use utf8;
use Selenium::Waiter qw/wait_until/;
$Selenium::Remote::Driver::FORCE_WD3=1;

my $driver = Selenium::Firefox->new(marionette_enabled => 1,
                                    capabilities => {
                                      "browser.download.folderList" => 2,
                                      "browser.helperapps.neverAsk.saveToDisk" => "tcx",
                                      "browser.download.dir" => '/Users/User/Desktop/myFolder/'
                                    } );
$driver->set_implicit_wait_timeout(3000);

my $url_to_download = "http://blablabla.com/blabla.tcx";
$driver->get($url_to_download);

$driver->quit();
$driver->shutdown_binary();


推荐答案

感谢@Corion的帮助能够使其工作。这是我用来创建驱动程序的代码:

Thanks to the help of @Corion I've been able to make it work. This is the code I've used to create the driver:

my $driver = Selenium::Firefox->new(marionette_enabled => 1,
                                    extra_capabilities => {
                                      'moz:firefoxOptions' => {
                                        'prefs' => {
                                          "browser.download.folderList" => 2,
                                          "browser.helperApps.neverAsk.saveToDisk" => "application/tcx+xml",
                                          "browser.download.dir" => '/Users/User/Desktop/myFolder/'
                                        }
                                      }
                                    } );

要获取 browser.helperApps.neverAsk.saveToDisk属性,只需手动使用网络检查器并获取响应的内容类型。

In order to get the "browser.helperApps.neverAsk.saveToDisk" property just use the network inspector manually and get the content-type of the response.

这篇关于如何使用perl为Firefox添加extra_capabilities与硒进行测试?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆