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 Appium server.
Docker-compose
includes the following services:
postgres-db
(PostgreSQL database to store etalon selector / healing / report)hlm-proxy
(Proxy client request to Appium server)hlm-backend
(CRUD service)selector-imitator
(Convert healed locator to convenient format)
Support: Android Web/native and IOS Web/native apps.
Clone Healenium repository:
git clone https://github.com/healenium/healenium.git
Before run healenium you have to specify appium server host and port using appropriate environment variables of hlm-proxy container: APPIUM_SERVER_URL
Example setup hlm-proxy's env variables in case of local Appium server (specified by default):
- APPIUM_SERVER_URL=http://host.docker.internal:4723/wd/hub
Run Healenium with Appium only
docker-compose -f docker-compose-appium.yaml up -d
Run Healenium with Appium and Selenoid
docker-compose 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";
MutableCapabilities cap = new MutableCapabilities();
cap.setCapability("platformName", "android");
cap.setCapability("deviceName", "emulator-5554");
cap.setCapability("browserName", "chrome");
cap.setCapability("nativeWebScreenshot",true);
AppiumDriver driver = new AppiumDriver(new URL(nodeURL), cap);
nodeURL = "http://localhost:8085"
# Set the desired capabilities.
desired_caps = {}
desired_caps['platformName'] = 'Android'
desired_caps['platformVersion'] = '9'
desired_caps['deviceName'] = 'emulator-5554'
desired_caps['browserName'] = 'chrome'
desired_caps['nativeWebScreenshot'] = 'true'
wd = webdriver.Remote('http://127.0.0.1:8085', desired_caps)