我希望这是一个需要解决的简单问题:
我有一台专用的机器,用chromedriver运行硒。我可以走到机器并在本地终端输入以下内容:
java -Dwebdriver.chrome.driver=chromedriver238 -jar selenium-server-3.11.jar
然后我可以去网络上的任何其他机器并开始测试(在我的情况下,jenkins上的代码)并且它将成功运行我的测试,并且没有任何障碍。
但是,如果我尝试运行上述命令而不是物理上在selenium机器上(例如,尝试ssh进入机器运行命令或使该命令作为管理程序进程运行),那么selenium无法启动铬的实例。
之前有没有人遇到这种情况?有没有办法让我可以对后台脚本进行“交互式”访问以允许它在我的屏幕上打开内容?
答案 0 :(得分:1)
因为当你身体走到机器并运行命令时。 selenium可以获得桌面/窗口界面。
当使用SSH时,selenium丢失了桌面/窗口界面,selenium必须在无头模型下启动chrome,但是你的代码不配置为无头模型运行。所以冲突就出来了。
您需要将代码配置为使用无头模型运行。
答案 1 :(得分:0)
我将遇到相同的情况,当我尝试在机器A上启动Selenium代码时,当我尝试启动Selenium并从机器B运行脚本时它仍然有效 (使用ssh [ssh test @ machine-a]远程连接到计算机A)chrome实例无法启动/启动,并且驱动程序变为空。
日志:
2020-02-27 12:04:27,319信息[LogWritter] beforeclass chrome驱动程序实例化异常,驱动程序为空
2020-02-27 12:04:27,493信息[LogWritter]获取屏幕截图时发生异常--- java.awt.AWTException:无头环境
任何帮助/建议都很棒!