HtmlUnit set download location - selenium

Currently I am executing selenium script with HtmlUnit. How can I set the Download location for the zip file downloaded at the time of test script execution.

You can use ChromeDriver in headless mode. You just need to add options as headless as below:
chromeOptions.addArguments("--headless");
The full code in Java will appear as below:
System.setProperty("webdriver.chrome.driver","D:\\Workspace\\JmeterWebdriverProject\\src\\lib\\chromedriver.exe");
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--headless");
chromeOptions.addArguments("--start-maximized");
WebDriver driver = new ChromeDriver(chromeOptions);
driver.get("https://google.com");
You can use ChromeDriver to set download in a specific path by below code:
String downloadFilepath = "/path/to/download";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(cap);

Related

How to handle or supress warning in Katalon for Chrome browser "This type of file can harm you computer. Do you want to keep it anyway?"

I want to suppress the above alert mentioned in the title while running my Katalon scripts.
Attaching screenshots for same:
It possible we have to run the chromedriver in safe mode.please try the below code
System.setProperty("webdriver.chrome.driver", "C:/chromedriver/chromedriver.exe");
String downloadFilepath = "D:/MyDeskDownload";
HashMap<String, Object> chromePrefs = new HashMap<String, Object>();
chromePrefs.put("profile.default_content_settings.popups", 0);
chromePrefs.put("download.default_directory", downloadFilepath);
chromePrefs.put("safebrowsing.enabled", "true");
ChromeOptions options = new ChromeOptions();
options.setExperimentalOption("prefs", chromePrefs);
DesiredCapabilities cap = DesiredCapabilities.chrome();
cap.setCapability(CapabilityType.ACCEPT_SSL_CERTS, true);
cap.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(cap);
You can set up the browser to automatically download files. The following is taken from Katalon forum:
First you add Chrome preferences:
HashMap<String, Object> chromePrefs = new HashMap<String, Object>()
chromePrefs.put("download.default_directory", downloadPath)
chromePrefs.put("download.prompt_for_download", false)
And then specify the path to ChromeDriver and add experimental options:
System.setProperty("webdriver.chrome.driver", "DriverFactory.getChromeDriverPath()")
ChromeOptions options = new ChromeOptions()
options.setExperimentalOption("prefs", chromePrefs)
NOTE:
You will need to import the following (or press CTRL+SHIFT+O for automatic imports):
import org.openqa.selenium.WebDriver
import org.openqa.selenium.chrome.ChromeDriver
import com.kms.katalon.core.webui.driver.DriverFactory

Selenium - FirefoxDriver not accepting arguments in code

I am unable to use arguments for new FirefoxDriver as per code:
File pathBinary = new File("C:\\Users\\myname\\AppData\\Local\\Mozilla Firefox\\firefox.exe");
FirefoxBinary firefoxBinary = new FirefoxBinary(pathBinary);
FirefoxProfile firefoxProfile = new FirefoxProfile();
WebDriver driver = new FirefoxDriver(firefoxBinary,firefoxProfile);
//WebDriver driver = new FirefoxDriver();
I get an error saying "remove arguments to match FirefoxProfile();
When I try using just new FirefoxDriver() I get:
org.openqa.selenium.WebDriverException: Cannot find firefox binary in PATH. Make sure firefox is installed. OS appears to be: WIN8_1
I am using:
geckodriver-v0.19.1-win32
selenium-server-standalone-3.7.1
Any help most appreciated.
You need to pass them in as Firefox options try the following
FirefoxProfile ffprofile = new FirefoxProfile();
FirefoxBinary ffBinary = new FirefoxBinary(new File("path to your firefox
executable"));
FirefoxOptions options = new FirefoxOptions();
options.setProfile(ffprofile);
options.setProfile(ffBinary);
options.setCapability(FirefoxOptions.FIREFOX_OPTIONS,options);
WebDriver driver = new FirefoxDriver(options);

Possible to add Chrome option and capabilities together?

Possible to add Chrome option and capabilities together?
In need to combine the following listed below together, is it even possible?
System.setProperty("webdriver.chrome.driver", Base_Page.getConstant(Constant.CHROME_DRIVER_DIRECTORY));
ChromeOptions options = new ChromeOptions();
string[] switches = {"user-data-dir=C:\\Users\\AppData\\Local\\Google\\Chrome\\User Data"};
options.addArguments("user-data-dir=C:\\Users\\AppData\\Local\\Google\\Chrome\\User Data");
options.addArguments("test-type");
options.addArguments("--start-maximized");
options.addArguments("--disable-extensions");
options.addArguments("no-sandbox");
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.ALL);
options.(CapabilityType.LOGGING_PREFS, logPrefs);
DesiredCapabilities caps = DesiredCapabilities.chrome();
caps.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver = new ChromeDriver(caps);
DesiredCapabilities caps = DesiredCapabilities.chrome();
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.ALL);
caps.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
caps.setCapability("chrome.switches", switches);
//webdriver = new ChromeDriver(caps);
webdriver = new ChromeDriver(options);
Searched the same question.
The answer is: just add all your Capabilities into the "options" object and launch browser using options:
ChromeOptions options = new ChromeOptions();
LoggingPreferences logPrefs = new LoggingPreferences();
logPrefs.enable(LogType.BROWSER, Level.ALL);
options.setCapability(CapabilityType.LOGGING_PREFS, logPrefs);
webdriver = new ChromeDriver(options);
Updating to latest version of chrome driver fixed my issue:
ChromeDriver 2.28
if you observe ChromeDriver constructor in below link
http://seleniumhq.github.io/selenium/docs/api/java/org/openqa/selenium/chrome/ChromeDriver.html
It will accept capabilities or options, means any one. I hope it clears you.

How to disable web security using selenium code for IE and Firefox

Written below code for chrome to disable web security
System.setProperty("webdriver.chrome.driver", "D:\\Eclipse\\chromedriver_win32\\chromedriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
/*options.addArguments("test-type");
options.addArgument("--start-maximized");*/
options.addArguments("--disable-web-security");
/* options.addArguments("--allow-running-insecure-content");*/
capabilities.setCapability("chrome.binary","D:/Eclipse/chromedriver_win32/chromedriver.exe");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(options);
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
driver = new ChromeDriver(options);
But I want to disable same for FF and IE.

What is the C# equivalent to Java ChromeOptions.setExperimentalOptions()?

I have automated android chrome browser with the below code:
DesiredCapabilities capabilities=DesiredCapabilities.chrome();
ChromeOptions options=new ChromeOptions();
options.setExperimentalOptions("androidPackage", "com.android.chrome");
capabilities.setCapability(ChromeOptions.CAPABILITY, options);
WebDriver driver=new ChromeDriver(capabilities);
System.setProperty("webdriver.chrome.driver", "C://Users//Documents//Appium//ChromeDriver//chromedriver.exe");
String url="http://yahoo.com";
driver.get(url);
I am trying to automate android chrome browser using C# (Visual Studio) but can't find the equivalent code. I am using this but not working:
Capabilities = DesiredCapabilities.Chrome();
ChromeOptions options1=new ChromeOptions();
options1.AddAdditionalCapability("androidPackage", "com.android.chrome",);
Driver = new ChromeDriver(Chrome_Driver, options1);
I believe this is what you're looking for:
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.AddAdditionalCapability("androidPackage", "com.android.chrome");
driver = new RemoteWebDriver(new Uri("http://seleniumhubaddress:4444/wd/hub"), chromeOptions.ToCapabilities());