Может ли Selenium использовать многопоточность в одном браузере?

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


person Roy    schedule 12.06.2015    source источник
comment
Привет ... вы имеете в виду, что хотите запускать тесты одновременно на разных вкладках, но в одном окне браузера (экземпляра)   -  person Vicky    schedule 12.06.2015
comment
Да, и каждая вкладка может работать как поток, тогда я могу одновременно открыть URL-адрес. Как я могу это сделать.   -  person Roy    schedule 14.06.2015
comment
Связанный вопрос stackoverflow.com/questions/28093347/   -  person Alexey Shrub    schedule 14.01.2019


Ответы (2)


WebDriver не потокобезопасный. Проблема безопасности потоков не в вашем коде, а в фактических привязках браузера. Все они предполагают, что будет только одна команда за раз (например, как настоящий пользователь). Но, с другой стороны, вы можете создать один экземпляр WebDriver для каждого потока, но он запустит несколько браузеров, которые будут потреблять больше памяти.

person Vicky    schedule 14.06.2015

Многопоточность должна выполняться на разных экземплярах Webdriver, поскольку сам Webdriver является одним потоком.

На одном и том же Webdriver можно запускать разные потоки, но тогда результаты тестов будут не такими, как вы ожидали. Позвольте мне это объяснить.

Когда вы используете многопоточность для запуска разных тестов на разных вкладках (что не невозможно, требуется немного кодирования), действия, которые вы будете выполнять, такие как нажатие или отправка ключей, перейдут на открытую вкладку, которая в данный момент сфокусирована независимо от теста. Бег. Это означает, что весь тест будет выполняться одновременно на той же вкладке, которая имеет фокус, а не на предполагаемой вкладке.

Вы можете прочитать о многопоточности в Webdriver.

person Manu    schedule 14.06.2015