Удаленка для jenkins+selenide+selenoid+allure+docker спецов на 2-3 часа в день. 100% remote! Присоединиться к проекту

Установить расширение в браузер. используя selenium Grid

grid
selenium
Теги: #<Tag:0x00007fedbfeac748> #<Tag:0x00007fedbfeac4f0>

(Анна Козырева) #1

Коллеги, доброе утро! Пишу, поскольку не смогла найти ответ на просторах гугла.
Ситуация следующая:

  1. имеется параллельный запуск тестов, 1 головная машина, 3 подчиненных.
  2. необходимо настроить браузеры на подчиненных машинах таким образом. чтобы они запускались с установленным расширением.
    Можно ли это сделать и если можно. то как? Я предполагаю так, что это где-то в конфигах самого грида надо прописывать.
    Я прошу прощения. если написала косноязычно, до этого грид никогда не оставила, такое наследие оставил коллега. я только учусь во всем этом разбираться.

Запуск браузера с установленными расширениями
(Bolatbek) #2

Ну как это так - не смогли найти ответ на просторах гугла?
Гуглите для своего ЯП и используемого фреймворка и браузера, например для ФФ:

set firefox profile extension for webdriver

(HS) #3

создать профайл так вот => http://webkul.com/blog/how-to-create-access-firefox-profile-in-selenium-webdriver/


(HS) #4

Добавить расширение в свой профиль для фф => https://stackoverflow.com/questions/18058226/how-to-set-firefoxprofile-with-extensions-for-remotewebdriver


(Mike Maciejewski) #5

Пример для Chrome Driver.

  1. Создаешь экстешн и кладешь его в папочку к тестам. К примеру chrome/extension/тут твое расширение.crx

  2. Читаешь его в base64.

    static readFileToBase64(pathToFile) {

     try {
    
         let bitmap = fs.readFileSync(pathToFile);
         return new Buffer(bitmap).toString('base64');
    
     }
    
     catch (e) {
    
         throw new TechnicalError(e);
     }
    

    }

  3. Создаешь хром с нужными капабилити:

    let base64ext = file.readFileToBase64(pathTOextension);

     let chromeOptions = {
    
         'extensions': [base64ext]
     };
    
     let chromeCapabilities = webdriver.Capabilities.chrome();
     chromeCapabilities.set('chromeOptions', chromeOptions);
     return driver = new webdriver.Builder()
         .usingServer(hub)
         .withCapabilities(chromeCapabilities)
         .build();
    

Данная схема нормально работает в следующем окружении.

  1. Тесты лежат в докере.
  2. В другом контейнере лежит Go Grid Router который работает с Selenoid хабами.
    Что по сути селениум грид только накрученный.

Запуск браузера с установленными расширениями