Есть интеграционный тест на 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); }
Подскажите в чём дело?!? Почему этот код работает если запускать тест в одиночку и не работает при общем запуске тестов?!?