Describe the problem
Environment:
Selenide, Gradlew
selenideVersion = '7.8.1'
seleniumVersion = '4.31.0'
cucumberVersion = '7.20.1'
jacksonVersion = '2.18.0'
implementation('com.epam.healenium:healenium-web:3.5.5') {
exclude group: 'org.slf4j', module: 'slf4j-simple'
}
The project runs on the remote server (Selenoid) and is started by Jenkins on a separate server.
My question is
How should I set up the remote webdriver for correct work in this flow?
I tried different configuration options, but the server refuses to start.
Example of code
public RemoteWebDriver setupRemoteBrowser(String browser, DesiredCapabilities desiredCapabilities) {
Browsers currentBrowser = Browsers.fromNameOrNull(browser);
switch (currentBrowser) {
case CHROME: {
// RemoteWebDriver driver = createRemoteChromeDriver(desiredCapabilities);
// return (RemoteWebDriver) wrapWithHealenium(driver);
RemoteWebDriver driver = createRemoteChromeDriver(desiredCapabilities);
SelfHealingDriver healingDriver = SelfHealingDriver.create(driver);
return (RemoteWebDriver) healingDriver;
}
case FIREFOX: {
RemoteWebDriver driver = createRemoteFirefoxDriver(desiredCapabilities);
return (RemoteWebDriver) wrapWithHealenium(driver);
}
case EDGE: {
RemoteWebDriver driver = createRemoteEdgeDriver(desiredCapabilities);
return (RemoteWebDriver) wrapWithHealenium(driver);
}
case SAFARI: {
RemoteWebDriver driver = createRemoteSafariDriver(desiredCapabilities);
return (RemoteWebDriver) wrapWithHealenium(driver);
}
default:
throw new NotImplementedException("Browser '" + browser + "' is not implemented");
}
}
private WebDriver wrapWithHealenium(WebDriver driver) {
log.info("Wrapping WebDriver with Healenium for self-healing capabilities.");
System.setProperty("healenium.config", "resources/healenium.properties");
return SelfHealingDriver.create(driver);
}
private RemoteWebDriver createRemoteChromeDriver(DesiredCapabilities desiredCapabilities) {
log.info("Using remote chrome driver instance");
ChromeOptions options = new ChromeOptions();
desiredCapabilities.setCapability("browser", "chrome");
desiredCapabilities.setCapability("browser_version", "127.0");
desiredCapabilities.setCapability("enableVNC", true);
desiredCapabilities.setCapability("sessionTimeout", "5m");
options.addArguments(
"--no-sandbox",
"--disable-dev-shm-usage",
"--window-size=1920,1080");
options.merge(desiredCapabilities);
return getRemoteWebDriver(options);
}
@slf4j
public class RemoteWebDriverProvider implements WebDriverProvider {
@Override
public WebDriver createDriver(Capabilities capabilities ) {
DesiredCapabilities desiredCapabilities = new DesiredCapabilities(capabilities.asMap());
SystemEnvironment environment = new SystemEnvironment();
GenericWebdriverProvider provider = new GenericWebdriverProvider();
return provider.setupRemoteBrowser(environment.getGetBrowser(), desiredCapabilities);
}
}
Healenium Web version
3.5.5
Healenium Backend version
3.4.7
Selenium version
4.31.0
Platform
Java
Properties file
recovery-tries=2
recovery.timeout=10
score-cap=.6
heal-enabled=true
locator-healing-strategy=xpath
similarity-threshold=0.8
serverPort=7878
imitatePort=8000
report.path=./healenium-reports
Logs appeared during using Healenium
/var/lib/jenkins/workspace/RocketEffect_SaaS/RF_Style_promo_test_automation/src/test/java/com/addiedigital/config/GenericWebdriverProvider.java:58: error: incompatible types: SelfHealingDriver cannot be converted to RemoteWebDriver
return createRemoteChromeDriver(desiredCapabilities);
^
Note: Some input files use or override a deprecated API.
Note: Recompile with -Xlint:deprecation for details.
1 error
Additional context
The tests can't start
Describe the problem
Environment:
Selenide, Gradlew
selenideVersion = '7.8.1'
seleniumVersion = '4.31.0'
cucumberVersion = '7.20.1'
jacksonVersion = '2.18.0'
implementation('com.epam.healenium:healenium-web:3.5.5') {
exclude group: 'org.slf4j', module: 'slf4j-simple'
}
The project runs on the remote server (Selenoid) and is started by Jenkins on a separate server.
My question is
How should I set up the remote webdriver for correct work in this flow?
I tried different configuration options, but the server refuses to start.
Example of code
public RemoteWebDriver setupRemoteBrowser(String browser, DesiredCapabilities desiredCapabilities) {
Browsers currentBrowser = Browsers.fromNameOrNull(browser);
// RemoteWebDriver driver = createRemoteChromeDriver(desiredCapabilities);
// return (RemoteWebDriver) wrapWithHealenium(driver);
@slf4j
public class RemoteWebDriverProvider implements WebDriverProvider {
}
Healenium Web version
3.5.5
Healenium Backend version
3.4.7
Selenium version
4.31.0
Platform
Java
Properties file
recovery-tries=2
recovery.timeout=10
score-cap=.6
heal-enabled=true
locator-healing-strategy=xpath
similarity-threshold=0.8
serverPort=7878
imitatePort=8000
report.path=./healenium-reports
Logs appeared during using Healenium
/var/lib/jenkins/workspace/RocketEffect_SaaS/RF_Style_promo_test_automation/src/test/java/com/addiedigital/config/GenericWebdriverProvider.java:58: error: incompatible types: SelfHealingDriver cannot be converted to RemoteWebDriver return createRemoteChromeDriver(desiredCapabilities); ^ Note: Some input files use or override a deprecated API. Note: Recompile with -Xlint:deprecation for details. 1 errorAdditional context
The tests can't start