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.git
docker-compose up -d
docker-compose -f docker-compose-selenoid.yaml up -d
docker-compose -f docker-compose-appium.yaml up -d
More details about integration Healenium with Appium here
Go to shell-installation:
cd shell-installation
There 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.sh
Run 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"
*/
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,
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();