Self-healing framework based on Selenium and able to use all Selenium supported languages like Java/Python/JS/C# Healenium acts as proxy between client and selenium server.
Docker-compose includes the following services:
postgres-db(PostgreSQL database to store etalon selector / healing / report)hlm-proxy(Proxy client request to Selenium server)hlm-bacand(CRUD service)selector imitator(Convert healed locator to convenient format)selenoid/selenium-grid(Selenium server)
Clone Healenium repository:
git clone https://github.com/healenium/healenium.gitNote:
browsers.jsonconsists of target browsers and appropriate versions. Before run healenium you have to manually pull selenoid browser docker images with version specified in browsers.json
Example pull selenoid chrome image:
docker pull selenoid/vnc:chrome_102.0Full list of browser images you can find here
Run healenium with Selenoid:
docker-compose up -ddocker-compose -f docker-compose-selenium-grid.yaml up -d /**
* "http://127.0.0.1:8085" OR "http://localhost:8085" if you are using locally running proxy server
*
* if you want to use a remote proxy server,
* specify the ip address of this server - "http://remote_ip_address:8085"
*/
String nodeURL = "http://localhost:8085";
ChromeOptions options = new ChromeOptions();
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
WebDriver driver = new RemoteWebDriver(new URL(nodeURL), options); nodeURL = "http://localhost:8085"
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
current_webdriver = webdriver.Remote(
command_executor=nodeURL,
desired_capabilities=webdriver.DesiredCapabilities.CHROME,
options=options,
) String nodeURL = "http://localhost:8085";
ChromeOptions optionsChrome = new ChromeOptions();
optionsChrome.AddArguments("--no-sandbox");
RemoteWebDriver driverChrome = new RemoteWebDriver(new Uri(nodeURL), optionsChrome); const NODE_URL = "http://localhost:8085";
let args = [
"--no-sandbox"
];
let chromeCapabilities = selenium.Capabilities.chrome()
.set('chromeOptions', { args });
let builder = new selenium.Builder()
.forBrowser('chrome')
.withCapabilities(chromeCapabilities);
let driver = await builder.usingServer(NODE_URL).build();