Chrome browser doesn't open in kiosk mode using Selenium WebDriver - google-chrome

I am using Selenium WebDriver with chrome browser and for whatever reason, it doesn't open in kiosk mode. This used to work, not sure why it stopped.
This is my code:
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);
}
This is my environment:
Chrome 66
Selenium WebDriver v 3.11.2
Chromedriver version 2.38.0.1 from this Nuget package
I've tried passing in --kiosk and --enable-kiosk-mode with no success.

To initialize the Chrome Browser in Kiosk Mode you need to pass the following argument through an instance of ChromeOptions class:
ChromeOptions options = new ChromeOptions();
options.addArguments("--kiosk");
return new ChromeDriver(options);
Note A : As per Java Doc, it is arguments are passed as addArguments()
Note B : As per Peter Beverloo
--kiosk:
Enables kiosk mode. Please note this is not Chrome OS kiosk mode.
Sample Code(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/");
Browser Snapshot:

After seeing that everyone had this working except me, I started digging further. After digging into the code I found
Driver.Manage().Window.Maximize();
being called after initialization of the driver. After removing this line of code, I was able to open Chrome in kiosk mode with the solution above.

Config issue as Chrome 66 is supported by Chromedriver 2.38 and you're using 2.18
Please update from below.
http://chromedriver.chromium.org/downloads

Related

How to resolve window.chrome.runtime with webdriver

I am getting undefined for window.chrome.runtime when open the chrome browser with selenium webdriver while on manually open the browser, we are getting object for window.chrome.runtime.
Is there any way to use Javascript's window.chrome.runtime with selenium webdriver?
I tried with following option but its didn't work for me.
ChromeOptions options = new ChromeOptions();
options.addArguments("--user-data-dir=C:\\Users\\ChhaviSinghal\\AppData\\Local\\Google\\Chrome\\User Data");
driver = new ChromeDriver(options);

ChromeDriver - headless option causes WebDriver to crash, when applied over added extension

Our framework uses “basic authenticator” extension that automatically takes care of authentication dialogs. The problem is that when attempting to run tests in headless mode, chromedriver crashes with following error:
org.openqa.selenium.WebDriverException: unknown error: failed to wait for extension background page to load: chrome-extension://paomkgjogbncmncdnconbommejfdhaoh/_generated_background_page.html
from unknown error: page could not be found: chrome-extension://paomkgjogbncmncdnconbommejfdhaoh/_generated_background_page.html
ChromeOptions options = new ChromeOptions();
options.addExtensions(new File(“authenticator”));
options.setHeadless(true);
WebDriver chrome = new ChromeDriver(options);
Chrome doesn't accept extensions in headless mode.
Consider switching the extensions off, or using Firefox.

Automating mobile browser with Selenium

Can we automate chrome browser on mobile with Selenium.
Without using the Appium.
That is I need to automate browser on mobile without using appium but selenium.. So Is there a way to do same in JAVA..
Download jar for Android driver here:
https://github.com/selendroid/selendroid
Start is up from command line:
$ java -jar selendroid-standalone-0.17.0-with-dependencies.jar
In your test, instantiate the driver like this:
driver = webdriver.Remote(desired_capabilities=DesiredCapabilities.ANDROID)
just instal Appium and use desired capabilities, these here are a setup for emulator with pre-set emulator call "Android", managed in Android Studio, AVD Manager.
public static void main(String[] args) throws MalformedURLException{
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability("device","Android");
capabilities.setCapability("app", "Chrome");
capabilities.setCapability(CapabilityType.BROWSER_NAME, "");
capabilities.setCapability(CapabilityType.VERSION, "4.3");
capabilities.setCapability(CapabilityType.PLATFORM, "WINDOWS");
WebDriver driver = new RemoteWebDriver(new URL("http://127.0.0.1:4723/wd/hub"), capabilities);
driver.get("http://www.yahoo.com");
}
or if this doesn't work try this bellow:
DesiredCapabilities capabilities=new DesiredCapabilities();//DesiredCapabilities.chrome();
ChromeOptions options=new ChromeOptions();
options.setExperimentalOptions("androidPackage", "com.android.chrome");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
I'm using latest dependancies of appium server and appium-java-client

Chrome - org.openqa.selenium.WebDriverException: unknown error: cannot get automation extension at driver.manage().window().maximize();

I am stuck with a very unusual kind of error thrown by Chrome Browser
When I try to do maximize chrome with below line of code
driver.manage().window().maximize();
I am getting below error
org.openqa.selenium.WebDriverException: unknown error: cannot get automation extension
from unknown error: page could not be found: chrome-extension://aapnijgdinlhnhlmodcfapnahmbfebeb/_generated_background_page.html
(Session info: chrome=57.0.2987.110)
(Driver info: chromedriver=2.27.440174 (e97a722caafc2d3a8b807ee115bfb307f7d2cfd9),platform=Windows NT 6.3.9600 x86_64) (WARNING: The server did not provide any stacktrace information)
Command duration or timeout: 10.05 seconds
By going through this example I did the below things
1. Updated Chrome driver to latest i.e 2.28 for my Chrome version
57.0.2987.110 (64-bit)
2. uninstalled and re-installed Chrome
3. did a project build up in Eclipse even created a new workspace
but nothing helped so I used
ChromeOptions options = new ChromeOptions();
options.addArguments("start-maximized");
driver = new ChromeDriver();
it worked and Chrome driver showed no error but whenever I execute some piece of code like filling a form or clicking some button after that it still throws the above error after some time.
In general the reason you see WebDriverException: unknown error: cannot get automation extension can be numerous. The two most common cases to see this exception is :
Mismatch between chromedriver binary and Chrome Browser binary versions. Solution : Follow the ChromeDriver Release Notes
Using driver.manage().window().maximize(); to maximize the Chrome Browser. Solution : Use ChromeOptions.addArguments("start-maximized"); to maximize the Chrome Browser.
As per your question the exception seems to be coming from one of the above cases.
Try out the following steps:
Kill all the chromedriver instances running in your windows Task Manager.
Use CCleaner tool to wipe out all the OS chores.
Clean all the projects in Eclipse.
Reboot your system once.
Provide the following options to start your Chrome browser:
ChromeOptions options = new ChromeOptions();
options.addArguments("test-type");
options.addArguments("start-maximized");
options.addArguments("disable-infobars");
options.addArguments("--disable-extensions");
driver = new ChromeDriver(options);
Your program should work with latest chrome driver 2.28 & Chrome Version 57.0.2987.110 (64-bit). Let me know if this helps you.
I had the same issue before, remember fixing it by adding this:
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("no-sandbox");
//Fix for cannot get automation extension
chromeOptions.addArguments("disable-extensions");
chromeOptions.addArguments("--start-maximized");

Coded UI Test Selenium Chrome Driver

Selenium chromedriver;
The open chrome driver window displays:
Starting ChromeDriver (v2.8.241075) on port 10820
[8804:7492:0110/155544:ERROR:chrome_views_delegate.cc(176)] NOT IMPLEMENTED
[8804:7492:0110/155544:ERROR:desktop_root_window_host_win.cc(746)] NOT IMPLEMENTED
[8804:7492:0110/155544:ERROR:desktop_root_window_host_win.cc(746)] NOT IMPLEMENTED
Windows 8
ChromeDriver 2.8
Selenium 2.39
Chrome version 32.0.1700.102 m
Coded UI Test;
BrowserWindow.CurrentBrowser = "chrome";
var browser = BrowserWindow.Launch(new Uri("http://www.google.com"));
...
To run a chrome driver refer below code.
You can download the driver from
http://chromedriver.storage.googleapis.com/index.html
Step 1 :
System.setProperty("webdriver.chrome.driver",driverPath+"\\chromedriver.exe");
Step 2
ChromeDriver driver = new ChromeDriver();
driver.get(YOUR_URL_HERE)
In C#, you have to write following code:
IWebDriver driver = new ChromeDriver("fullpath to chrome driver exe");
driver.Navigate().GoToUrl("http://www.google.com");
You can download the Chrome Driver from this URL:
https://sites.google.com/a/chromium.org/chromedriver/downloads
Change the url to https://www.google.com.
Right now you are using http://www.google.com