Как я могу добавить extra_capabilities для firefox для тестирования с селеном с использованием perl? - PullRequest
0 голосов
/ 28 декабря 2018

Мне удалось установить эти параметры, такие как папка загрузки и запрос на загрузку, следующим образом (или аналогично, поскольку я не знаю этого кода):

 '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.

Это упрощенная версия моей попытки, но, похоже, она не работает.Но это также не генерирует исключение:

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();

1 Ответ

0 голосов
/ 28 декабря 2018

Благодаря помощи @Corion я смог заставить его работать.Вот код, который я использовал для создания драйвера:

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", просто используйте инспектор сети вручную и получите тип содержимогоответ.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...