Healenium installation without Docker
Healenium-Proxy - it's platform agnostic solution. Therefore, no matter which language you use, it will heal selenium-based test cases at the level of selenium server. This approach involves running a standalone proxy server that sits between the test runner (Selenium server) and the web application being tested. Healenium-Proxy able to use all Selenium supported languages Java/Python/JS/C# and frameworks. Client have to create RemoteWebDriver and connect to Healenium-Proxy instance. That will be described in more detail later.
Docker-compose includes the following services:
postgres-db(PostgreSQL database to store etalon selector / healing / report)hlm-proxy(Proxying client requests to the Selenium server.)hlm-backend(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.gitdocker-compose up -ddocker-compose -f docker-compose-selenoid.yaml up -ddocker-compose -f docker-compose-appium.yaml up -dMore details about integration Healenium with Appium here
Go to shell-installation:
cd shell-installationThere are web and remote options to run healenium.
- Start PostgeSql server.
- Create user (healenium_user/YDk2nmNs4s9aCP6K) (example data)
- Set attribute 'Can Login' (true) to user
- Create database (healenium) and set owner healenium_user
- Create schema (healenium) and set owner healenium_user
Specify your db user and password data in the bash script 'start_healenium.sh'.
Setup selenium server (selenium-grid)
Download healenium services
download_services.shRun shell command to launch healenium components
start_healenium.sh /**
* "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"
*/
StringnodeURL = "http://localhost:8085";
ChromeOptionsoptions = newChromeOptions();
options.addArguments("--no-sandbox");
options.addArguments("--disable-dev-shm-usage");
WebDriverdriver = newRemoteWebDriver(newURL(nodeURL), options);nodeURL="http://localhost:8085"options=webdriver.ChromeOptions()
options.add_argument('--no-sandbox')
current_webdriver=webdriver.Remote(
command_executor=nodeURL,
options=options,
)StringnodeURL="http://localhost:8085";ChromeOptionsoptionsChrome=newChromeOptions();optionsChrome.AddArguments("--no-sandbox");RemoteWebDriverdriverChrome=newRemoteWebDriver(newUri(nodeURL),optionsChrome);constNODE_URL="http://localhost:8085";letargs=["--no-sandbox"];letchromeCapabilities=selenium.Capabilities.chrome().set('chromeOptions',{ args });letbuilder=newselenium.Builder().forBrowser('chrome').withCapabilities(chromeCapabilities);letdriver=awaitbuilder.usingServer(NODE_URL).build();