Перейти к содержимому

JastaFly

Регистрация: 02 дек 2022
Offline Активность: 06 дек 2022 13:31
-----

Мои темы

Ошибка Curl error thrown for http POST to

02 декабря 2022 - 07:34

Есть интеграционный тест на Selenium + PHPUnit если запускать его только этот тест, то всё ok, он прекрасно работает, но вот если запустить все тесты, то он выдаёт ошибку:

1) Site\Selenium\Test\NewsFiltersTest::testFilters
Facebook\WebDriver\Exception\WebDriverCurlException: Curl error thrown for http POST to /session/43170fb6bd154f91bc8fb7c3d2694345/elements with params: {"using":"xpath","value":"//a[contains(@class, 'news-item')]"}

Operation timed out after 120001 milliseconds with 0 bytes received

/app/vendor/php-webdriver/webdriver/lib/Remote/HttpCommandExecutor.php:333
/app/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:585
/app/vendor/php-webdriver/webdriver/lib/Remote/RemoteWebDriver.php:225
/app/tests/NewsFiltersTest.php:77
/app/tests/NewsFiltersTest.php:42
phpvfscomposer:///app/vendor/phpunit/phpunit/phpunit:97

Элемента селектор котого фигурирует в тексте ошибки:

$newsItemsSelector = WebDriverBy::xpath("//a[contains(@class, 'news-item')]");

На странице может и не быть и тогда сработает цикл while, который будет работать пока не найдёт страницу на который элементы по селектору есть в наличии:

$newsItemsSelector = WebDriverBy::xpath("//a[contains(@class, 'news-item')]");
            $newsItems = $chrome->findElements($newsItemsSelector);

            while (count($newsItems) === 0) {
                self::openCalendar($chrome);
                self::openPrevMount($chrome);
                self::clickToRandomDate($chrome);
                $newsItems = $chrome->findElements($newsItemsSelector);
            }

Подскажите в чём дело?!? Почему этот код работает если запускать тест в одиночку и не работает при общем запуске тестов?!?