2

我遇到了无法使用任何扩展程序打开 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"));
        }
4

3 回答 3

2

硒化物: http ://selenide.org/2018/01/12/selenide-4.10/

您可以在 Configuration 中设置自定义功能,Selenide 在打开浏览器时会使用它们:

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

您也可以像@dangi13 回答中那样设置自定义网络驱动程序:

WebDriverRunner.setWebDriver(myDriverWithExtension);
于 2018-08-18T08:33:59.973 回答
1

@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

作为workarond,我使用以下选项:

@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);
}
于 2018-08-19T17:12:18.667 回答
1

我不知道如何在 selenide 中执行此操作,但您可以像这样在 selenium 中添加扩展名:

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);
    }

希望对您有所帮助:)。

于 2018-08-17T22:08:10.213 回答