Вышел релиз Selenium 3.5

Вышел релиз Selenium 3.5

В очередном релизе Selenium 3.5 на поверхности никаких заметных изменений нет. Но зато “под капотом” сервера Selenium появился “режим сквозной передачи запросов (pass through)”.

Сервер сейчас должен уметь работать с двумя разными версиями протоколов – новая, совместимая со стандартом W3C WebDriver, и старая, оставшаяся с достандартных времён. Раньше сервер перекодировал запросы, полученные от клиента, прежде чем передать их дальше по цепочке (от хаба к узлу грида, или от узла грида к браузеру). В режиме pass through он не вмешивается в структуру запроса, до браузера он доходит ровно в том виде, в котором его отправил клиент. Тем самым сервер не вносит никаких возмущений и искажений, за соответствие запросов той или иной версии протокола полную ответственность теперь несут клиентские библиотеки.

С другой стороны, в клиентских библиотеках появился механизм “переговоров” с браузером (точнее говоря, с его драйвером), позволяющий определить, какую версию протокола нужно использовать. Если драйвер готов разговаривать на языке протокола W3C WebDriver – преимущество отдаётся этому способу. Иначе используется старая версия протокола. При этом, благодаря режиму pass through, переговоры ведутся напрямую с драйвером, а сервер выступает в роли нейтрального посредника.

Все эти штуки, по замыслу разработчиков, должны повысить надёжность работы сервера Selenium и особенно Selenium Grid. Но на всякий случай осталась возможность отключить этот режим и вернуться к старому, с перекодировкой запросов, для этого нужно при запуске сервера указать опцию -enablePassThrough false