I am trying to set up a Selenium server with Spring boot 3 + java 17. Selenium version: 4.19.1
Also i am using
<dependency>
<groupId>io.github.bonigarcia</groupId>
<artifactId>webdrivermanager</artifactId>
<version>5.8.0</version>
<scope>provided</scope>
</dependency>
at pom file. (its a maven project)
I am instantiate the server as below without problems.
import io.github.bonigarcia.wdm.WebDriverManager;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeDriverService;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.RemoteWebDriver;
import org.openqa.selenium.remote.SessionId;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.beans.factory.annotation.Configurable;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.boot.autoconfigure.EnableAutoConfiguration;
import org.springframework.context.annotation.Bean;
import org.springframework.core.env.Environment;
import org.springframework.scheduling.annotation.EnableAsync;
import org.springframework.stereotype.Component;
import org.springframework.stereotype.Service;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.context.support.SpringBeanAutowiringSupport;
import jakarta.annotation.PostConstruct;
import java.io.IOException;
import java.net.MalformedURLException;
import java.net.URL;
import java.util.ArrayList;
@Component
public class SeliniumServer implements ISeliniumServer{
private WebDriver Webdriver;
private WebDriverManager webDriverManager;
private SessionId sessionId;
private String ServerPort;
private String ChromeVersion="";
public SeliniumServer() {
SpringBeanAutowiringSupport.processInjectionBasedOnCurrentContext(this);
createServer();
}
@Override//Windows
public void createServer() {
webDriverManager = null;
ChromeOptions options = ChomeSetup();
webDriverManager =WebDriverManager.chromedriver();//.setup();
// ksks.getDockerSeleniumServerUrl()
webDriverManager.config().setServerPort(8081);
webDriverManager.setup();
try {
Webdriver=new RemoteWebDriver(new URL("https://localhost:"+8081),options);
} catch (Exception e) {
Webdriver=new ChromeDriver(options);
// driverService.getClass().getSuperclass().get
System.out.println("---------------------------------------------------------------No port");
// e.printStackTrace();
}
sessionId = ((RemoteWebDriver) Webdriver).getSessionId();
System.out.println("session ID: "+sessionId.toString());
Webdriver.get("https://www.google.com/");
System.out.println("window handle: "+((RemoteWebDriver) Webdriver).getCurrentUrl());
System.out.println("port : "+webDriverManager.config().getServerPort());
System.out.println("remote adress: "+ webDriverManager.remoteAddress("http://localhost:"+8081).toString());
setServerPort(String.valueOf(webDriverManager.config().getServerPort()));
}
@Override
public void InitialiseServer(WebDriver driver) {
}
@Override
public void IntialiseServer(WebDriver driver, String URL) {
}
@Override
public void IntialiseServer(WebDriver driver, String URL, String port) {
}
@Override
public void CloseServer(WebDriver driver) {
Webdriver.quit();
Webdriver.close();
}
public SessionId getSessionId() {
return sessionId;
}
public void setSessionId(SessionId sessionId) {
this.sessionId = sessionId;
}
public WebDriver getWebdriver() {
return Webdriver;
}
public void setWebdriver(WebDriver webdriver) {
Webdriver = webdriver;
}
public String getServerPort() {
return ServerPort;
}
public void setServerPort(String serverPort) {
ServerPort = serverPort;
}
private ChromeOptions ChomeSetup()
{
ChromeOptions options = new ChromeOptions();
options.addArguments("enable-automation");
options.addArguments("--no-sandbox");
options.addArguments("--disable-infobars");
options.addArguments("--disable-dev-shm-usage");
options.addArguments("--disable-browser-side-navigation");
options.addArguments("--disable-gpu");
options.addArguments("--blink-settings=imagesEnabled=false");
// options.setExperimentalOption("debuggerAddress", "127.0.0.1:4444");
return options;
}
}
However execution of Code never enters on bellow snippet
try {
Webdriver=new RemoteWebDriver(new URL("https://localhost:"+8081),options);
}
And also whenever i am trying to perform a GET request to localhost:8081 using CLI commands of the server (example : http://localhost:8081/session/b1b1eb82dda432d8d8d4ad64e814c9f2/url) i am getting connection refused.
Can you please assist me?