Perl Selenium :: Remote :: Драйвер и темы - PullRequest
1 голос
/ 01 мая 2020

У меня есть программа, которую я пишу на perl с использованием Selenium :: Remote :: Driver, которая также использует потоки.

Является ли S: R: D дружественным к потокам? Когда я запускаю поток и пытаюсь открыть экземпляр драйвера селена, я получаю случайную ошибку (не имею под рукой, я прошел мимо этого). На данный момент я установил общую переменную, благодаря которой только один экземпляр селена выполняет команды за раз, но я все еще сталкиваюсь с ошибками, прямо сейчас с настройкой файлов cookie в экземпляре селена.

Есть Есть ли способ обойти это?

Вот как моя программа работает, например:

они оба устанавливают драйвер как

$driver = Selenium::Remote::Driver->new( 'auto_close' => 0,
                          'browser_name' => 'chrome',
                           extra_capabilities' => { 
                            'chromeOptions' => {
                       'args' => ['window-size=1920,1080',
                            'blink-settings=imagesEnabled=false']}});

[Тема 1] Запускается
[ Поток 2] Начинается
[Поток 2] Случайно выиграл гонку получения селена первым, делает вещи
[Поток 1] Ждет, пока поток 2 завершит выполнение команд селена.
.... Перемотка вперед Потоки закончили настройку ....
[Тема 1] Теперь выигрывает гонку и начинает устанавливать повара ie в коде своего регистра здесь. Селеновый экземпляр на веб-странице, на которой мы находимся, www.mywebsite.com

$driver->add_cookie("anything", "1", "/", 'www.mywebsite.com','1','1');

этот поток завершается из-за ошибки

Thread 1 terminated abnormally: Error while executing command: invalid argument: invalid argument: invalid 'secure' (Session info: chrome=81.0.4044.129) at /Library/Perl/5.18/Selenium/Remote/Driver.pm line 402 thread 1. at /Library/Perl/5.18/Selenium/Remote/Driver.pm line 353 thread 1.

Независимо от того, на что мы его изменим, все равно будет ошибка, у любого есть Любые идеи? это действительно просто не дружественный поток, и я должен попробовать что-то еще?

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