我已经在我的AWS服务器上启动了selenod。我遵循官方教程:https://aerokube.com/cm/latest/
并以以下方式启动selenoid(用户界面):
cm selenoid start --vnc
cm selenoid-ui start --port 8081
端口4444和80在安全组中打开(在入站和出站规则中)
现在我尝试远程使用selenod并设置web驱动程序:
ChromeOptions newOptions = new ChromeOptions();
newOptions.setCapability("enableVNC", true);
newOptions.setCapability("enableVideo", false);
newOptions.setCapability("sessionTimeout", "3m");
URL host;
try {
host = new URL(SELENOID_HUB);// -> http://x.xx.x.xx:4444/wd/hub
} catch (Exception e){
throw new RuntimeException();
}
RemoteWebDriver driver = new RemoteWebDriver(host, newOptions);
driver.setFileDetector(new LocalFileDetector());
return new ChromeDriver();
代码执行后,我在RemoteWebDriver驱动程序=new RemoteWebDriver(host, newOptions);
行收到错误:
由java.net引起ConnectException:连接 /x.xx.xx.x失败: 80
完整的堆栈跟踪:
我可以从浏览器访问超文本传输协议://x. xx.x.xx:4444/wd/hub,并在PowerShell终端中进行检查:
Test-NetConnection -ComputerName x.x.x.x.x -Port 4444
结果:
计算机名称:x. x.x.x远程地址:x.x.x.x远程端口:4444接口别名:Wi-Fi源地址:192.168.0.113TcpTest成功:真
正如我提到的,原因(在我的情况下)是selenold
依赖。我不确定,但在我删除它后,我收到了更正确的错误无法连接到/ip.add.re.ss:4444
。但是,最终在我将内存容量增加到8 Gb后,AWS实例都开始正常工作。
所以,至少,肯定,服务器上的内存必须足够。