Unable to work with Google chrome driver - selenium

I want to work with google chrome. I am using the following code to instantiate google chrome driver object. But, when I click "System." and doing ctrl+space for suggestions, its showing "No Default Proposals".
and when writing the full code, it's showing error. See picture.

There is no issue with the chrome driver. The problem is you're trying to use it under the class level and not inside a method
Place the code inside any method and you will not get any errors.

I guess you are missing the annotations/method here
something like this
public class Chromedriver{
WebDriver driver;
#BeforeClass
public void setup() {
System.setProperty("webdriver.chrome.driver", "Path to chrome driver");
driver=new ChromeDriver();
driver.get("https://accounts.google.com/");
}
Or call the above in main method or a seperate method. Please make sure all the imports are done.
Cheers!!!

You need to import the Chrome driver class as well for using selenium with Chrome.
Please try this code
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Tester {
private static WebDriver driver = null;
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path to chrome driver");
driver = new ChromeDriver();
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("http://www.example.com");
driver.quit();
}
}

Related

The package org is not accessible - Selenium web driver

I am trying write a selenium code using Java but there is an error package org is not accessible.
I have downloaded a firefox driver and given a path. Please let me know. It will be appreciated.
Please find the code below
package Selenium.webdriver.basictests;
import org.openqa.selenium.firefox.FirefoxDriver;
public class Firsttest {
public static void main(String [] args) {
System.setProperty("webdriver.firefox.marionette","C://Users//97477//.eclipse//geckodriver.exe");
FirefoxDriver driver = new FirefoxDriver();
}
}
SeleniumWebdriverErrors
Please the location of my project folder and let me know the next step because it still showing an error.
Please check the location
Few things:
instead of this:
System.setProperty("webdriver.firefox.marionette","C://Users//97477//.eclipse//geckodriver.exe");
use this:
System.setProperty("webdriver.gecko.driver",Path_of_Firefox_Driver"); // Setting system properties of FirefoxDriver
and
instead of this:
FirefoxDriver driver = new FirefoxDriver();
use this:
WebDriver driver = new FirefoxDriver(); //Creating an object of FirefoxDriver
refer this image:

Chrome browser version - 72.0.3626.121 not opening with selenium

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import init.Constants;
public class TestSelenium {
private static WebDriver driver;
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir")+Constants.getChromeDriver());
driver = new ChromeDriver();
driver.get("https://www.google.com");
}
}
I am getting the error as below
Starting ChromeDriver 2.46.628402 (536cd7adbad73a3783fdc2cab92ab2ba7ec361e1) on port 45163
Only local connections are allowed.
Please protect ports used by ChromeDriver and related test frameworks to prevent access by malicious code.
The chrome browser is opening but the url is not coming up.
I am using
Chrome driver - 72.0.3626.69
WebDriver - 3.0
You can use bonigarcia dependency for your automation. Then you don't need to keep chromedriver.exe or setting up system variables. It will do all the configurations automatically for all the platforms and all the browsers as well.
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>3.3.0</version>
</dependency>
Below is a sample class to get chrome browser instance. You can modify this class as per your requirement.
import io.github.bonigarcia.wdm.*;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class DriverFactory {
public static WebDriver getDriver() {
WebDriverManager.chromedriver().setup();
return new ChromeDriver();
}
}
I have tested this with Selenium 3.14.0 and Chrome Version 73.0.3683.86 (Official Build) (64-bit)
You mentioned using Chrome driver - 72.0.3626.69 but error shows Starting ChromeDriver 2.46.628402. Check if you have correct chrome driver.
The possible reasons:
Old selenium (download 3.14.xx from https://www.seleniumhq.org/download/)
older chrome driver (consider update to the latest chromedriver https://chromedriver.storage.googleapis.com/index.html?path=73.0.3683.68/)
Chrome browser version mismatch (check the browser version and chromedriver compatibility at https://sites.google.com/a/chromium.org/chromedriver/downloads/version-selection)
Older Java version (latest Java version 11.0.2)
it does not open because you have not specify the path of the chromedriver.exe file
please find the below code snippet.
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class TestChrome {
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
// Initialize browser
WebDriver driver = new ChromeDriver();
// Open facebook
driver.get("http://www.facebook.com");
// Maximize browser
driver.manage().window().maximize();
}
}
Try to first set the Chrome driver path before calling the Chrome driver.
System.setProperty("webdriver.chrome.driver", "path of the exe file\\chromedriver.exe");
driver = new ChromeDriver();
driver.get("https://www.google.com");
Try to set chrome options:
ChromeOptions chromeOptions = new ChromeOptions();
chromeOptions.addArguments("--whitelist-ip *");
chromeOptions.addArguments("--proxy-server='direct://'");
chromeOptions.addArguments("--proxy-bypass-list=*");
WebDriver driver = new ChromeDriver(chromeOptions);
Step 1: Check your browser version with your webdriver version on this page: https://chromedriver.chromium.org/downloads
Step 2: If after followed above step till you have the same issue then follows the below method:
public class TestSelenium {
private static WebDriver driver;
public static void main(String[] args) {
System.setProperty("webdriver.chrome.driver","user.dir");
driver = new ChromeDriver();
driver.get("https://www.google.com");
}
}

Error while invoking Internet Explorer browser using Selenium

Can anyone please help with the Selenium code below. I am getting an error while invoking Internet Explorer for automation testing.
Code :
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class Demo {
public static void main(String[] args) {
System.setProperty("webdriver.ie.driver","C:\\microsoftwebdriver\\MicrosoftWebDriver.exe");
WebDriver driver = new InternetExplorerDriver();
driver.get("https://www.google.com/");
System.out.println(driver.getTitle());
}
}
Error screenshot attached:
InternetExplorerDriver
InternetExplorerDriver class is the WebDriver implementation that controls the IEServerDriver and and allows you to drive Internet Explorer browser running on the local machine. This class is provided as a convenience for easily testing the InternetExplorer browser. The control server which each instance communicates with will live and die with the instance.
To create a new instance of the IEServerDriver you need to use the IEServerDriver binary instead of MicrosoftWebDriver.exe which you need to download from selenium-release.storage, unzip and provide the absolute path within the System.setProperty() line. So your effective code block will be:
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.ie.InternetExplorerDriver;
public class Demo {
public static void main(String[] args) {
System.setProperty("webdriver.ie.driver","C:\\path\\to\\IEServerDriver.exe");
WebDriver driver = new InternetExplorerDriver();
driver.get("https://www.google.com/");
System.out.println(driver.getTitle());
}
}

Not able to open new tab in Browser using Selenium Webdriver

I am trying to open new tab in selenium using below line of code
driver.findElement(By.cssSelector("body")).sendKeys(Keys.chord(Keys.CONTROL, "t"));
But tabs is not opening up. Can anyone tell whats wrong in this command?
Also can any one explain "driver.findElement(By.cssSelector("body"))" used in this command for ? I tried searching but not proper answers
Below complete is not working. It is opening up both gmail and stack overflow in same tab in chrome not opening up new tab
package TestCode;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
import org.openqa.selenium.JavascriptExecutor;
import org.openqa.selenium.Keys;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Chrome {
public static void main(String[] args) throws InterruptedException {
// TODO Auto-generated method stub
System.setProperty("webdriver.chrome.driver","C:\\Akash\\Drivers\\chromedriver.exe");
WebDriver driver = new ChromeDriver();
driver.get("https://www.gmail.com");
String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL+"t");
driver.findElement(By.tagName("body")).sendKeys(selectLinkOpeninNewTab);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("https://stackoverflow.com/");
System.out.println("Site open");
}
}
You can use javaScripts to open new tab in chrome.
try below line of code
JavascriptExecutor js = (JavascriptExecutor) driver;
js.executeScript("window.open('https://www.google.com','_blank');");
Refer this link :- link
Instead of chord use control
driver.findElement(By.cssSelector("body")).sendKeys(Keys.CONTROL +"t");
For chrome use this
first opened the tab and then hit the URL
String selectLinkOpeninNewTab = Keys.chord(Keys.CONTROL+"t");
driver.findElement(By.tagName("body")).sendKeys(selectLinkOpeninNewTab);
driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
driver.get("https://stackoverflow.com/");
System.out.println("Site open");

My selenium webdriver script doesn't work on Chrome

package javapackage;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.By;
public class SeleniumQuora {
public static void LaunchQuora()
{
System.setProperty("webdriver.chrome.driver","E:\\SBI SO\\Selenium\\Extracts\\chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.get("https://www.quora.com/");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(13, TimeUnit.SECONDS);
driver.findElement(By.xpath("//*[#id='__w2_lIh8Ilg_google_connect_button']/span")).click();
}
public static void main(String[] args) {
LaunchQuora();}}
this code is supposed to click on "Continue with Google" option in the signIn page. But nothing happens. Its pretty basic I know but I searched most places and cant find the answer.
Actually you are locating wrong element, In this website there is no element with the id __w2_lIh8Ilg_google_connect_button as I seeing, May be provided id is dynamically generated, So if you want to click on Continue with Google button simply try using By.linkText() as below :-
System.setProperty("webdriver.chrome.driver","E:\\SBI SO\\Selenium\\Extracts\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
options.addArguments("--disable-popup-blocking");
WebDriver driver = new ChromeDriver(options);
driver.get("https://www.quora.com/");
driver.manage().window().maximize();
driver.manage().timeouts().implicitlyWait(13, TimeUnit.SECONDS);
driver.findElement(By.linkText("Continue with Google")).click();
Hope it helps..:)