This question already has answers here:
ChromeDriver and WebDriver for Selenium through TestNG results in 4 errors
(2 answers)
java.lang.Error: Unresolved compilation problems : WebDriver/ChromeDriver cannot be resolved to a type error while executing selenium tests
(5 answers)
Closed 2 years ago.
I'm new to selenium and I tried to code my first java script using selenium.
It is giving errors as follows:
**- WebDriver cannot be resolved to a type
ChromeDriver cannot be resolved to a type
Watchpoint:FirstSelleniumScript [access and modification] - driver**
I have added selenium to the libaries- selenium-java-3.141.59
java version "1.8.0_251"
I can't understand how to fix it.
Import Necessary Files
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
Download The Compatible
ChromeDriver
Now in function you have set the path for chromedriver in your method
String chromePath = "C:/Common_Resourses/";
System.setProperty("webdriver.chrome.driver", chromePath + "chromedriver.exe");
WebDriver driver = new ChromeDriver();
You can also Read more About browser capabilities, it will help you with browser handling
You need to set property first and import chrome driver.
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();
Also refer this video https://youtu.be/c86GdHQaLsY
Related
package AutomationSample;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
System.setProperty("webdriver.chrome.driver", "C:\\Users\\UserName\\Desktop\\chromedriver_win32");
WebDriver driver= new ChromeDriver();
driver.get("https://www.youtube.com/");
the above is my code and I have added all the selenium related jars into the project.
am getting the below error while running the Chrome driver:
Error: Unable to initialize main class AutomationSample.HelloWorld
Caused by: java.lang.NoClassDefFoundError: org/openqa/selenium/WebDriver
I am using Chrome - Version 91.0.4472.114 (Official Build) (64-bit)
and I am using chrome driver - 32 bit and my OS is windows 10 -64 bit.
Can you please help me to rectify this error?
cause you are missing class and method, one such method is main()
You need to have a method like below :
public static void main(String args[]) {
System.setProperty("webdriver.chrome.driver", "C:\\Users\\UserName\\Desktop\\chromedriver_win32");
WebDriver driver= new ChromeDriver();
driver.get("https://www.youtube.com/");
}
and obviously a class in which you will have this method.
you have to pass the driver extension like below :
System.setProperty("webdriver.chrome.driver", "C:\Users\UserName\Desktop\chromedriver_win32.exe");
WebDriver driver= new ChromeDriver();
System.setProperty("webdriver.chrome.driver","C:\\Users\\UserName\\Desktop\\chromedriver_win32");
has to be:
System.setProperty("webdriver.chrome.driver","C:\\Users\\UserName\\Desktop\\chromedriver_win32.exe");
you forgot .exe
this is my class*****
```
package automation;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Test1 {
public static void main(String[] args)
{
System.setProperty("webdriver.chrome.driver", "C:/Users/UMASHANKAR/Downloads/chromedriver_win32/chromedriver.exe");
WebDriver driver=new ChromeDriver();
driver.findElement(By.id("userName")).sendKeys("https://sdzclient-kpiregister.azurewebsites.net/");
driver.findElement(By.id("passwords")).sendKeys("Gravity#123");
driver.findElement(By.id("btn-sdz-login")).click();
}
}
```
on Hover the SendKeys method will get an error like"The method sendKeys(char sequence[] )in the type webelement is not applicable for the string".***
When you are working with Selenium you need to follow a few steps
//first you add your chrome driver path
System.setProperty("webdriver.chrome.driver", "C:/Users/UMASHANKAR/Downloads/chromedriver_win32/chromedriver.exe");
// second you need to initialize the WebDriver object - and you did it
WebDriver driver=new ChromeDriver();
// third you need to tell to the WebDriver object where to go, what page to load
driver.get("https://sdzclient-kpiregister.azurewebsites.net/");
//below is the login part
driver.findElement(By.id("userName")).sendKeys("SET_YOUR_USERNAME_HERE");
driver.findElement(By.id("passwords")).sendKeys("Gravity#123");
driver.findElement(By.id("btn-sdz-login")).click();
your error was throw because the driver didn't know where to go but you tried to send some keys instead of a driving page path
I am not sure, when you said you are not able to change compilation version. You can change as per below screen grab.
..project>right click>build path>configure build path >java compiler>
Do not forget to click on Apply after changing compilation version.
This question already has answers here:
Mac OSX - IllegalStateException: The driver is not executable:
(12 answers)
java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property
(4 answers)
Closed 2 years ago.
I'm trying to use selenium with java to test a login form and I get this error any ideas?
Exception in thread "main" java.lang.IllegalStateException: The path to the driver executable must be set by the webdriver.chrome.driver system property; for more information, see https://github.com/SeleniumHQ/selenium/wiki/ChromeDriver. The latest version can be downloaded from http://chromedriver.storage.googleapis.com/index.html
at com.google.common.base.Preconditions.checkState(Preconditions.java:847)
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:134)
at org.openqa.selenium.chrome.ChromeDriverService.access$000(ChromeDriverService.java:35)
at org.openqa.selenium.chrome.ChromeDriverService$Builder.findDefaultExecutable(ChromeDriverService.java:159)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:355)
at org.openqa.selenium.chrome.ChromeDriverService.createDefaultService(ChromeDriverService.java:94)
at org.openqa.selenium.chrome.ChromeDriver.<init>(ChromeDriver.java:123)
at com.selenium.Main.main(Main.java:11)
This is my code:
package com.selenium;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import java.util.concurrent.TimeUnit;
public class Main {
public static void main(String[] args) throws InterruptedException {
//Cambia la ruta del teu directori perque funcioni//
System.setProperty("webdriver.gecko.driver","C:\\Users\\Sethei\\Desktop\\M05_Selenium\\geckodriver.exe");
//Test login
WebDriver driver = new ChromeDriver();
driver.get("http://127.0.0.1:8000/login");
driver.manage().window().maximize();
driver.findElement(By.id("email")).sendKeys("email#gmail.com");
driver.findElement(By.id("password")).sendKeys("12345678");
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
driver.findElement(By.id("login")).click();
Thread.sleep(3000);
This question already has answers here:
java.lang.Error: Unresolved compilation problems : WebDriver/ChromeDriver cannot be resolved to a type error while executing selenium tests
(5 answers)
Closed 3 years ago.
Question is:
1) In my simple program how do I identify errors in each line before run it?
2) I placed my program here, while running I am getting many errors. How can I resolve them?
Program:
package newpackage;
import org.openqa.selenium.By;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
public class Myclass {
public static void main(String[] args) {
System.out.println("Chrome is selected");
System.setProperty("webdriver.chrome.driver","C:\\ProgramFiles\\Chrome65.0.3325.146\\googlechromeportable.exe");
WebDriver driver= new ChromeDriver();
driver.get("https://www.facebook.com/");
driver.manage().window().maximize();
//XPath for Email Field
driver.findElement(By.xpath("//*[#id='login']")).sendKeys("xxx#gmail.com");
//XPath for Password Field
//driver.findElement(By.xpath("//*[#id='pass']")).sendKeys("xxxxxxx");
driver.findElement(By.xpath("//*[#id=\"u_0_a\"]")).click();
}
}
Error:
Exception in thread "main" java.lang.Error: Unresolved compilation problems:
WebDriver cannot be resolved to a type
ChromeDriver cannot be resolved to a type
By cannot be resolved`enter code here`
By cannot be resolved
at newpackage.Myclass.main(Myclass.java:16)
You need to specify the driver location , by mistake you gave the browser.exe path so kindly modify your code as below . My chromedriverexe in Jar_files folder and you may need to download it and place it there . I advise you to refer a blog or a video prior to scripting so that you can get more clear idea.
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;
import org.testng.Assert;
import org.testng.annotations.AfterSuite;
import org.testng.annotations.BeforeClass;
import org.testng.annotations.Test;
public class ExecutionbasedOnTReachabilityOfSite {
WebDriver driver;
#BeforeClass()
public void setUp() throws IOException {
System.setProperty("webdriver.chrome.driver", System.getProperty("user.dir") + "\\Jar_files\\chromedriver.exe");
ChromeOptions options = new ChromeOptions();
// To start Chrome in Maximized browser window
options.addArguments("start-maximized");
// To remove Chrome is being controlled by automated test software
options.addArguments("disable-infobars");
driver = new ChromeDriver(options);
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
}
It is because you have not added selenium-server-standalone-3.141.59.jar as dependency in build path.
Download JAR from below path:
https://selenium-release.storage.googleapis.com/3.141/selenium-server-standalone-3.141.59.jar
Right click on Project Folder > Build Path > Configure Build Path > Select & Add downloaded external JAR
All compile time errors that you are getting will be resolved.
package com.merchantPlatform;
import java.util.concurrent.TimeUnit;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.firefox.FirefoxDriver;
import org.openqa.selenium.remote.DesiredCapabilities;
public class MerchantPlatformTest {
public static void main(String[] args) {
System.getProperty("webdriver.gecko.driver", "C:\\Selenium WebDriver\\geckodriver\\geckodriver-v0.17.0-win64\\geckodriver.exe");
DesiredCapabilities capabilities = DesiredCapabilities.firefox();
capabilities.setCapability("marionette", true);
// Initialize WebDriver
WebDriver driver = new FirefoxDriver(capabilities);
/* This works fine for versions lesser than Selenium 3. For Selenium 3 and higher, it will throw java.lang.IllegalStateException */
// Maximize Window
driver.manage().window().maximize();
// Wait For Page To Load
driver.manage().timeouts().implicitlyWait(60, TimeUnit.SECONDS);
// Navigate to MerchantPlatform URL
driver.get("http://localhost:52939/");
}
}
Error
I am getting the below exception with System.getProperty
Exception in thread "main" java.lang.IllegalStateException: The path
to the driver executable must be set by the webdriver.gecko.driver
system property; for more information, see
https://github.com/mozilla/geckodriver. The latest version can be
downloaded from https://github.com/mozilla/geckodriver/releases
at com.google.common.base.Preconditions.checkState(Preconditions.java:738)
at org.openqa.selenium.remote.service.DriverService.findExecutable(DriverService.java:124)
at org.openqa.selenium.firefox.GeckoDriverService.access$100(GeckoDriverService.java:41)
at org.openqa.selenium.firefox.GeckoDriverService$Builder.findDefaultExecutable(GeckoDriverService.java:115)
at org.openqa.selenium.remote.service.DriverService$Builder.build(DriverService.java:330)
at org.openqa.selenium.firefox.FirefoxDriver.toExecutor(FirefoxDriver.java:207)
at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:108)
at org.openqa.selenium.firefox.FirefoxDriver.(FirefoxDriver.java:137)
at com.merchantPlatform.MerchantPlatformTest.main(MerchantPlatformTest.java:20)
You have to use System.setProperty not the System.getProperty as follows.
System.setProperty("webdriver.gecko.driver",
"C:\\Selenium WebDriver\\geckodriver\\geckodriver-v0.17.0-win64\\geckodriver.exe");
I have noticed that you are using wrong syntax, to opening the browser.
Instead of using System.getProperty, You have to use System.setProperty as mentioned below.
System.setProperty("webdriver.gecko.driver", "C:\\Selenium WebDriver\\geckodriver\\geckodriver-v0.17.0-win64\\geckodriver.exe");
For more details on this issue, refer this page.