如何在 Selenoid 浏览器上 运行 脚本

How to run scripts on Selenoid browser

我一直在尝试为我的自动化设置设置 Selenoid 以进行并行测试,因为我有数百个测试用例 运行。

这是我试过的方法。

1) 已安装 Docker 桌面

2) 使用此命令下载 Selenoid 容器

    docker run -d --name selenoid -p 4444:4444 -v ~/.aerokube/selenoid/:/etc/selenoid/:ro     
-v /var/run/docker.sock:/var/run/docker.sock    
aerokube/selenoid:latest-release

3) Selenoid 和 Selenoid UI 启动并且 运行ning 在 Docker. 为了检查这个设置,我这样做了:

当我在浏览器中输入 http://localhost:4444/status 时,它会将我带到一个包含以下文本的页面:

 {"total":5,"used":0,"queued":0,"pending":0,"browsers":{}}

当我在浏览器中输入 http://localhost:8080/ 时。它会将我带到带有文本 No Sessions yet.

的 Selenoid UI 页面

我使用“docker pull selenoid/chrome”命令拉取了 chrome 浏览器图像。

当我尝试在 Selenoid 容器上自动执行一个简单的脚本来访问此浏览器时 运行我收到一个错误

 Requested environment is not available (WARNING: The server did not provide any stacktrace information)



DesiredCapabilities dcap = DesiredCapabilities.chrome();
ChromeOptions options = new ChromeOptions();
dcap.setCapability(ChromeOptions.CAPABILITY, options);
dcap.setCapability("enableVNC", true);
dcap.setBrowserName("chrome");

RemoteWebDriver driver = new RemoteWebDriver(
    URI.create("http://localhost:4444/wd/hub").toURL(), 
    dcap
);

String driverPath = "C:\ABC\chromedriver.exe";
System.setProperty("webdriver.chrome.driver", driverPath);

// Get URL
driver.get("https://www.google.com/");
// Print Title
System.out.println(driver.getTitle()); 

我是不是漏掉了什么重要的东西?请指导我。谢谢。

您至少应该在 ~/.aerokube/selenoid/ 中创建一个 browsers.json 文件,其中 Selenoid 将读取可用浏览器版本列表以及要使用的 Docker 图像。

我建议您使用我们名为 cm 的自动安装工具,它会自动完成您的所有操作。将此工具二进制文件下载到您的工作站安装就像发出两个命令一样简单:

$ ./cm selenoid start --vnc
$ ./cm selenoid-ui start