Selenium ChromeDriver with AdBlock in incognito - java

I want to open ChromeDriver with extension AdBlock in incognito.
I try with
ChromeOptions co = new ChromeOptions();
co.addArguments("--load-extension=...\\adblock");
This work if I open ChromeDriver without incognito, but in Incognito don't work. How can make AdBlock to work in incognito.

Try this:
ChromeOptions co = new ChromeOptions();
co.addExtensions(new File("/path/to/extension.crx"));
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);
Source: https://www.blazemeter.com/blog/6-easy-steps-testing-your-chrome-extension-selenium

Related

Problems using an existing Firefox Profile on Jenkins

I am having problems using an existing Firefox Profile in Jenkins server. Locally, everything is working fine.
I am using the following code block to use the Firefox profile:
System.setProperty("webdriver.gecko.driver", "C:\\path\\to\\geckodriver.exe");
ProfilesIni profile = new ProfilesIni();
FirefoxProfile testprofile = profile.getProfile("selenium-profile");
FirefoxOptions opt = new FirefoxOptions();
opt.setProfile(testprofile);
WebDriver driver = new FirefoxDriver(opt);
driver.get("https://www.google.com");
The error shown on Jenkins:
org.openqa.selenium.WebDriverException: Unexpected value for profile: null

ChromeDriver does not handle ssl certificates when running in headless mode

Below driver works fine when i remove headless option but when i include it the test fails. Using chromedriver version 2.36.540470
public WebDriver createDriver() {
System.setProperty("webdriver.chrome.driver", "C:\\Dev\\tools\\chromedriver.exe");
final ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.setExperimentalOption("useAutomationExtension", false);
chromeOptions.addArguments("window-size=1900x1200");
chromeOptions.addArguments("--disable-gpu");
chromeOptions.addArguments("--headless");
final WebDriver driver = new ChromeDriver(chromeOptions);
return driver;
}
Turns out chromedriver running headless does not deal with ssl certificates very well (current open issue with them). Switching to gecko driver fixed the issue.

Remote webdriver with opera and edge browser

Can't connect to opera and edge webdriver through hub.
My procedure:
start hub in cmd:
java -jar C:\path\to\selenium-server-standalone-3.7.1.jar -role hub
start node in cmd:
java -Dwebdriver.opera.driver=C:\path\to\operadriver.exe -
Dwebdriver.edge.driver=C:\path\to\MicrosoftWebDriver.exe -jar
C:\path\to\selenium-server-standalone-
3.7.1.jar -role node -hub http://mylocalhost:4444/grid/register
-browser "browserName=opera,maxInstances=5,platform=Windows" -
browser "browserName=edge,maxInstances=5,platform=Windows"
And run this test for Opera:
WebDriver driver;
String nodeURL;
nodeURL = "http://mylocalhost:5555/wd/hub";
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName("opera");
capabilities.setPlatform(Platform.WINDOWS);
driver = new RemoteWebDriver(new URL(nodeURL), capabilities);
driver.get("https://www.google.ru/");
And for Edge:
WebDriver driver;
String nodeURL;
nodeURL = "http://mylocalhost:5555/wd/hub";
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setBrowserName("opera");
capabilities.setPlatform(Platform.WINDOWS);
driver = new RemoteWebDriver(new URL(nodeURL), capabilities);
driver.get("https://www.google.ru/");
This is cause exception for Opera:
org.openqa.selenium.WebDriverException: unknown error: cannot find Opera binary
And exception for Edge:
org.openqa.selenium.SessionNotCreatedException: Unable to create new service: ChromeDriverService
I know that this code work fine for Chrome and firefox. Anyone know how to apply this for Opera ana Edge?

Standalone chrome.exe connection to selenium test

As you can find at cannot stop Chrome from updating from 43 to 44 I am having problem with chrome 44, as RobW suggested (in comments) i got a stand alone chrome.exe which has the version that I need, but now I do not know how to connect it to my test application which is written by Selenium & JAVA.
You need to point the "binary" to your standalone Chrome using ChromeOptions:
ChromeOptions options = new ChromeOptions()
options.setBinary(new File("/path/to/chrome"));
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
ChromeDriver driver = new ChromeDriver(capabilities);

How to change Firefox WebDriver Port

It is just a curiosity that how can I run firefox driver on different port like IE and Chrome driver.This driver have option like
ChromeDriverService service=new ChromeDriverService.Builder().usingPort(7000).
usingDriverExecutable(new File("")).build();
though the firefox driver have the option like that
System.setProperty("webdriver.firefox.port","7046");
or
DesiredCapabilities cap=new DesiredCapabilities();
cap.setCapability("webdriver_firefox_port",7046);
but it can not run firefox driver on this port I am using 2.41 Selenium Webdriver and firefox 31
Can anyone explain why and how can I run firefox driver in specified port.
Well, not sure, but this should work
ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile profile = allProfiles.getProfile("WebDriver");
profile.setPreference(FirefoxProfile.PORT_PREFERENCE, 7046)
WebDriver driver = new FirefoxDriver(profile);

Categories