OS - Windows 7
PhantomJS version - 2.1.1
Selenium - 3.8.1(selenium-server).
JDK - 152.
I\'m trying to run simple test, using PhantomJS:
Just to add a different scenario where the same exception can be faced.
While using Eclipse below code was working :
File file = new File("C://phantomjs.exe");
System.setProperty("phantomjs.binary.path", file.getAbsolutePath());
WebDriver driver = new PhantomJSDriver();
While using Intellij, the same above code was throwing the error as mentioned in the question.
But the below worked with the Intellij :
DesiredCapabilities capabilities = new DesiredCapabilities();
capabilities.setCapability(PhantomJSDriverService.PHANTOMJS_EXECUTABLE_PATH_PROPERTY, "C:\\phantomjs.exe");
WebDriver driver = new PhantomJSDriver(capabilities);
Note:Dont forget to change the exe path.
The error you are seeing says it all :
NoSuchMethodError: org.openqa.selenium.os.CommandLine.find(Ljava/lang/String;)Ljava/lang/String;
NoSuchMethodErrorNoSuchMethodError extends IncompatibleClassChangeError and as per the Java Docs it is thrown if an application tries to call a specified method of a class (either static or instance), and that class no longer has a definition of that method. Normally, this error is caught by the compiler and this error can only occur at run time if the definition of a class has incompatibly changed.
Perform the following steps :
JDK to the most recent versions (Java 8 Update 151)Project Space from the IDE.CCleaner tool to wipe off all the OS system chores.System RebootAs you are using PhantomJSDriver (GhostDriver) you need to add the following Maven Dependency :
<dependency>
<groupId>com.github.detro</groupId>
<artifactId>phantomjsdriver</artifactId>
<version>1.4.0</version>
</dependency>
You need to update the line System.setProperty with the absolute path of the phantomjs binary as follows :
File path=new File("C:\\path\\\to\phantomjs-2.1.1-windows\\bin\\phantomjs.exe");
System.setProperty("phantomjs.binary.path",path.getAbsolutePath());
WebDriver driver= new PhantomJSDriver();
driver.navigate().to("https://www.google.co.in/");
Execute your Test