Selenide: Как открыть браузер Chrome с расширениями

Я столкнулся с проблемой, что не могу открыть Chrome с любым расширением. Я уже добавил расширение, но не знаю, как правильно его запустить с фреймворком Selenide. Не могли бы вы мне помочь

@BeforeClass
public static void setUp() {
   Configuration.browser = "chrome";
   System.setProperty("selenide.browser", "chrome");
   ChromeOptions options = new ChromeOptions();
   options.addExtensions(new File("src/main/resources/uBlock Origin.crx"));
        }

person hamvee    schedule 17.08.2018    source источник


Ответы (3)


Selenide: http://selenide.org/2018/01/12/selenide-4.10/

Вы можете установить собственные возможности в Конфигурации, и Selenide будет использовать их при открытии браузера:

Configuration.browserCapabilities = new DesiredCapabilities();
Configuration.browserCapabilities.setCapability(SOME_CAP, "SOME_VALUE_FROM_CONFIGURATION");

Также вы можете установить собственный веб-драйвер, как в ответе @dangi13:

WebDriverRunner.setWebDriver(myDriverWithExtension);
person Sers    schedule 18.08.2018

Я не знаю, как это сделать в селениде, но вы можете добавить расширение в селениум следующим образом:

public static WebDriver getChromeDriverWithAdblockCrx() {
          System.setProperty("webdriver.chrome.driver", "src//main//resources//chromedriver.exe");
          DesiredCapabilities capabilities = new DesiredCapabilities();
          ChromeOptions options = new ChromeOptions();
          options.addExtensions(new File("src//main//resources//uBlock Origin.crx"));
          capabilities.setCapability(ChromeOptions.CAPABILITY, options);

          return new ChromeDriver(capabilities);
    }

Надеюсь, что это поможет вам:).

person dangi13    schedule 17.08.2018
comment
К сожалению, эта опция не работает с Selenide. - person hamvee; 18.08.2018

@sers, @dangi13 Большое спасибо!

Но возможности не добавились из Configuration.browserCapabilities. Я написал следующий код:

@BeforeClass
public static void setUp() {
Configuration.browser = "chrome";
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("src/main/resources/uBlock Origin.crx"));
Configuration.browserCapabilities = new DesiredCapabilities();
Configuration.browserCapabilities.setCapability(ChromeOptions.CAPABILITY, options);
}

На github упоминается известная проблема: https://github.com/codeborne/selenide/issues/676

В качестве обходного пути я использую следующий вариант:

@BeforeClass
public static void setUp() {
System.setProperty("webdriver.chrome.driver", "src/main/resources/chromedriver.exe");
Configuration.browser = "chrome";
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File("src/main/resources/uBlock Origin.crx"));
WebDriver webDriver = new ChromeDriver(options);
setWebDriver(webDriver);
}
person hamvee    schedule 19.08.2018