Size: a a a

Selenide на русском

2020 March 28

BO

Boris Osipov in Selenide на русском
ммм а оно же не мертво зависает? есть же всяк http\tcp таймауты на запрос как я понимаю.
источник

AB

Alexei Barantsev in Selenide на русском
источник

AS

Andrei Solntsev in Selenide на русском
Я помню, как-то нашел прохардкоженный тайм-аут в 30 минут где-то внутри селениума.
источник

AB

Alexei Barantsev in Selenide на русском
браузер и драйвер не крешится, он просто не присылает ответ на команду и всё
источник

AS

Andrei Solntsev in Selenide на русском
Я даже вроде завёл issue на эту тему, но её потом закрыли из-за неактивности.
источник

AB

Alexei Barantsev in Selenide на русском
Andrei Solntsev
Я помню, как-то нашел прохардкоженный тайм-аут в 30 минут где-то внутри селениума.
ну это костыль, конечно. потому что надо же рано или поздно сетевое соединение закрыть :)
источник

AS

Andrei Solntsev in Selenide на русском
Да нет, не костыль. Просто надо сделать его явно меньше.
источник

AB

Alexei Barantsev in Selenide на русском
пытаемся это как раз улучшить, чтобы не было таких 30-минутных зависаний тестов
источник

AB

Alexei Barantsev in Selenide на русском
это и хотим сделать, да
источник

AS

Andrei Solntsev in Selenide на русском
Так если сделать его, скажем, в 20 секунд (с возможностью настраивать), то вся проблема решится. И не нужны будут все эти приседания с потоками и CompletableFuture.
источник

AB

Alexei Barantsev in Selenide на русском
если вам надо выставить таймаут на уровне HTTP-клиента — он и сейчас настраиваемый
источник

AB

Alexei Barantsev in Selenide на русском
но это другой таймаут, это именно потеря связи. а тут проблема другая — связь есть, но ответ на команду не приходит
источник

¢

¢^°=¶√•| in Selenide на русском
Alexei Barantsev
то есть веб-драйвер не гарантирует, что все команды выполняются в одном потоке, иначе этот поток просто заблокируется и всё, дальше тупик, потому что прервать его нельзя
А давно так или всегда?
источник

AB

Alexei Barantsev in Selenide на русском
до версии 4-альфа-5 всё запускалось в одном потоке
источник

AS

Andrei Solntsev in Selenide на русском
Alexei Barantsev
но это другой таймаут, это именно потеря связи. а тут проблема другая — связь есть, но ответ на команду не приходит
Так я не понимаю, почему бы и этот тайм-аут не сделать настраиваемым.
источник

AB

Alexei Barantsev in Selenide на русском
так мы и сделаем его настраиваемым. вопрос в том, как это реализовать?
источник

AB

Alexei Barantsev in Selenide на русском
в Java всё связанное с таймаутами так или иначе связано с запуском отдельного потока
источник

¢

¢^°=¶√•| in Selenide на русском
Alexei Barantsev
до версии 4-альфа-5 всё запускалось в одном потоке
На шарпе заметил одну вещь, что хром при использовании средсейфти синглтона для вебдрайвера порой не закрывается, в дебаг режиме все ок.
источник

AB

Alexei Barantsev in Selenide на русском
мы про Java сейчас, в C# пока никаких изменений не происходило
источник

AS

Andrei Solntsev in Selenide на русском
Alexei Barantsev
в Java всё связанное с таймаутами так или иначе связано с запуском отдельного потока
Ну, если в отдельном потоке будут запускаться http-запросы между тестом и вебдрайвером - это самый простой и безопасный вариант для всех. Никому ничего не придётся переделывать, да и в самом селениуме изменения минимальны.
источник