使用Selenium WebDriver,Chrome浏览器无法在自助服务终端模式下打开

时间:2018-05-30 16:11:17

标签: google-chrome selenium selenium-webdriver selenium-chromedriver

我正在使用带有Chrome浏览器的Selenium WebDriver,无论出于何种原因,它都不会在自助服务终端模式下打开。这曾经起作用,不知道为什么它会停止。

这是我的代码:

        private IWebDriver GetChromeDriver(BrowserConfigurationOptions browserConfigOptions)
    {
        var options = new ChromeOptions();
        options.AddArguments("disable-infobars");
        options.AddUserProfilePreference("credentials_enable_service", false);
        if (browserConfigOptions.KioskModeForChrome)
            options.AddArgument("--kiosk"); //options.AddArgument("--enable-kiosk-mode");
        LogChromeOptions(options);

        return new ChromeDriver(options);
    }

这是我的环境:

  • Chrome 66
  • Selenium WebDriver v 3.11.2
  • Chromedriver版本2.38.0.1来自此Nuget package

我尝试过--kiosk和--enable-kiosk-mode但没有成功。

3 个答案:

答案 0 :(得分:1)

在看到除了我以外每个人都有这个工作后,我开始进一步挖掘。在深入研究代码后我找到了

<强> Driver.Manage()Window.Maximize();

在初始化驱动程序后调用。删除此行代码后,我可以使用上述解决方案在kiosk模式下打开Chrome。

答案 1 :(得分:0)

配置问题,因为Chromedriver 2.38支持Chrome 66,而您使用的是2.18

请从下面更新。

http://chromedriver.chromium.org/downloads

答案 2 :(得分:0)

要在 Kiosk模式中初始化 Chrome浏览器,您需要通过 ChromeOptions 类的实例传递以下参数:

ChromeOptions options = new ChromeOptions();
options.addArguments("--kiosk");
return new ChromeDriver(options);

注意A :根据 Java Doc ,参数将作为 addArguments()

传递

注意B :根据Peter Beverloo

  • <强> --kiosk

    Enables kiosk mode. Please note this is not Chrome OS kiosk mode.
    
  • 示例代码(Java):

    System.setProperty("webdriver.chrome.driver", "C:\\Utility\\BrowserDrivers\\chromedriver.exe");
    ChromeOptions options = new ChromeOptions();
    options.addArguments("--kiosk");
    WebDriver driver = new ChromeDriver(options);
    driver.get("https://www.google.com/");
    
  • 浏览器快照:

Chrome_Kiosk_Mode