2014-12-17 3 views
2

Я использую селен 2 с Phpunit. когда я запускаю скрипт, я получил эту ошибку во время прогона. PHPUnit_Extensions_Selenium2TestCase_NoSeleniumException: подключение ошибки [28] для локального хоста: 4444/WD/концентратора/сессии/edf323b4-c6ba-471a-9966-f2b9f3718084/URL: Операция таймаута после 60000 миллисекунд с 0 байт полученоselenium2 (phpunit) - ошибка подключения

иногда после нескольких секунд, а иногда и через 20 минут (память: 48 Мб). Для выполнения сценария требуется много времени. (он переливается как 100 новостей на разные страницы) , но я не считаю, что это проблема (иногда она раздавливается через несколько секунд). Я уже пробовал обновить рамки селена и phpunit до последней версии, но это не помогает.

Есть ли возможность продолжить сценарий после раздачи соединения? или избегать раздавливания?

Я знаю, что могу попытаться увеличить время соединения, но я ищу другое решение или объяснение, почему это происходит. есть идеи?

спасибо.

+0

Возможно, вы поместите свой setUp() из PHPUnit. – acfreitas

+1

@ Antônio Carlos public function setUp() { $ this-> setHost ('localhost'); $ this-> setPort (4444); $ this-> setBrowser ('firefox'); $ this-> setBrowserUrl ('http://investing.com'); } – Dennis

+0

Проверьте, работает ли Selenin в локальном хосте: 4444/wd/hub/session/в вашем браузере и отредактируйте setHost() с адресом Selenium. Для получения дополнительной информации см. Http://codeception.com/11-12-2013/working-with-phpunit-and-selenium-webdriver.html и https://phpunit.de/manual/current/en/selenium. HTML – acfreitas

ответ

1

проблемы с подключением, потому что CURL, я пытался изменить php.ini и увеличить таймаут, но он не работает, поэтому я понимаю, что, вероятно, селен устанавливал тайм-аут на лету или что-то в этом роде. после короткого Grep я нашел этот файл:

phpunit/phpunit-selenium/PHPUnit/Extensions/Selenium2TestCase/Driver.php 

в методе конструкта можно изменить значение по умолчанию на «тайм-аут» переменной . чтобы этот параметр никогда не менялся (если вы ленивы, чтобы найти все места, где селен вызывает этот класс), установите ваш тайм-аут по умолчанию на свойство 'seleniumServerRequestsTimeout' (не рекомендуется).

1

Я столкнулся с той же проблемой. Это было вызвано доступом к сеансам и использованием session_id(). Вы должны использовать session_write_close(), чтобы исправить проблему.

1

У меня была такая же проблема, и после нескольких дней пробовать все (я тоже пробовал решения в этом вопросе) без успеха, чтобы решить эту проблему, я решил изменить браузер.

Я загрузил Chrome Driver, и все приступило к работе без проблем. Это заставляет меня думать, что это может быть конфликт какой-то версии или что-то еще. Я использовал Selenium версии 2.53.0 и PhantomJS версии 2.1.1.

Смежные вопросы