Подтвердить что ты не робот

Chromedriver чрезвычайно медленный на конкретной машине, используя Selenium Grid и .net

Обзор: Chromedriver работает нормально на одной машине, но очень медленно на двух других одинаковых машинах.

Настройка:

  • Selenium Webdriver с использованием .Net для кодирования и селеновой сетки для распространения тестов. MSTest используется из Visual Studio 2010 для запуска тестов.
  • 64-битная локальная машина Windows 7, действующая как концентратор
  • Три 32-разрядных Win 7 удаленных компьютера (два из них являются виртуальными) в моей локальной сети, все настроенные как узлы. Вот команда, используемая для запуска узлов на удаленных машинах:

    java -jar c:\seleniumWebDriver\seleniumGrid\selenium-server-standalone-2.31.0.jar -role node -hub http://XXX.XXX.XXX.XXX:4444/grid/register -browser "browserName = chrome", maxInstances = 4 -Dwebdriver.chrome.driver = "C:\seleniumWebDriver\chromedriver.exe"

  • Драйвер запускается следующим образом из кода:

    Возможности DesiredCapabilities = new DesiredCapabilities(); способность .SetCapability(CapabilityType.BrowserName, браузер); driver = new RemoteWebDriver (новая функция Uri (hubUrl), возможность);

  • Переменная "браузер" и "hubUrl" выше передается через файл app.config, который создается во время выполнения. Для этого случая браузер = хром.

Проблема:

  • Когда я устанавливаю машину 212 (которая является виртуальной машиной) в качестве chrome node с помощью вышеприведенной команды, а затем запускаю скрипты из концентратора, я вижу, что запуск хрома на надлежащей удаленной машине и нормально работать, Он помещается между 5-10 командами в секунду.

  • Когда я настраиваю либо машину 78 (виртуальную машину), либо машину 103 (реальная машина) как node таким же образом, а затем запускаю скрипты из концентратора, я вижу запуск node хром должным образом. Однако он работает очень медленно, например, 1 команда в секунду или меньше.

Дополнительная информация: Как я уже сказал, на одной машине хром работает нормально, но на остальных работает очень медленно. Firefox и IE, когда они настроены как узлы, работают нормально.

Я сравнил машину 212 (которая работает правильно) с другими машинами и не может найти разницы. Все машины используют "selenium-server-standalone-2.31.0.jar" и ту же версию ChromeDriver.

Похоже, что машины node перегружены. Кроме того, это очень последовательная разница в производительности, которая, как представляется, не связана с какой-либо колебательной нагрузкой на сеть или машины.

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

Кто-нибудь видел что-нибудь подобное раньше?

РЕДАКТИРОВАТЬ 1: я вошел в систему сегодня, и все три удаленных компьютера медленно запускают хром. Прежде, чем один из них был нормальным, но теперь они все медленны.

4b9b3361

Ответ 1

Я столкнулся с аналогичной проблемой, где на некоторых машинах был медленный хромированный реверс, и это оказалось проблемой прокси. Отключение "Автоматическое определение настроек" в настройках Chrome://" > Изменение параметров прокси-серверa > Настройки локальной сети > сделанные команды webdriver для меня быстрее выполняются в хроме для меня.

Ответ 2

Мои настройки прокси-сервера не использовали автоматическое обнаружение, но я нашел следующее, что помогло. Время, затрачиваемое на запуск драйвера, уменьшилось с 43 секунд до 1 секунды.

driver = new ChromeDriver(new ChromeOptions{Proxy = null}); 

Ответ 3

Ошибка ссылки в проблемах chromedriver Это долговременная проблема, получившая самый низкий приоритет. Но если за это проголосует больше пользователей, возможно, кто-то это исправит. Это также может быть связано с тем, что разбор конфигурации прокси не соответствует стандарту, что будет исправлено в ближайшее время.

Ответ 4

Этот код решил проблему для меня для Chrome 75 на macOS 10.14.3

ChromeOptions options = new ChromeOptions();
options.setProxy(null);
driver = new ChromeDriver(options);