Code
Register Client to Selenium Hub
using (var client = new SshClient(<Open Vpn Server Public IP>, <username>, <privtae key file path>))
{
client.Connect();
client.RunCommand("java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar <Replace java selenium server jar file path> -role hub -host <Open Vpn Ip Address> -port <Open Vpn Ip HUB Port> ");
client.Disconnect();
}
Un-Register the Client from Selenium Hub
client.Connect();
var pid = "0";
var Result = client.RunCommand("ps -eaf");
var processToKill = "java -Dwebdriver.chrome.driver=/usr/bin/chromedriver -jar <Replace java selenium server jar file path> -role hub -host <Open Vpn Ip Address>";
foreach (var item in Result.Result.Split('\n'))
{
if (item.Contains(processToKill))
{
//hardcoding has 2nd column will be always PID
string[] commands = item.Split(' ');
pid = commands[1];
break;
}
}
client.RunCommand("kill " + pid);
Testing Script
//Define Chrome driver options here other browser options can also be used.
ChromeOptions options = new ChromeOptions();
options.AddArgument("--start-maximized");
// Instantiate Remote WebDriver (Specify the open vpn server ip along with hub open port)
IWebDriver driver= new RemoteWebDriver(new Uri("http://<Hub IP Address>: Hub Port/wd/hub"), options.ToCapabilities(), TimeSpan.FromSeconds(600));
driver.Navigate().GoToUrl("https://portal.azure.com/");