我目前正在从事自动化质量保证工作。我们使用Java的项目:jbehave,thucydides,selenium。我们正在使用Ubuntu OS。
每次我运行测试时,我都必须停止做所有事情(编码,浏览网页),因为每次点击或selenium的任何操作都会将驱动程序窗口(我们使用的是chrome驱动程序)置于焦点中(使窗口处于活动状态)如果我做某事我搞砸了测试。因此,我们的团队浪费了很多时间。
我们已经尝试过Phantomjs,它没有正常工作,无法找到元素等...而且还使用vagrant在虚拟机中运行测试并不适用于我们(出于公司特定原因)。 / p>
如果Chrome驱动程序在启动时会接管活动窗口,只要它会在后台继续执行不同的操作,那就没关系了。奇怪,但在我以前的项目(windows,c#,mstest)中,chromedriver的行为与此完全相同,没有任何额外的设置。 请帮忙,我知道很少有其他团队遇到这个问题。似乎只在Mac和Linux上出现此问题。
答案 0 :(得分:0)
长期遇到这个问题后,我终于找到了一个很好的解决方案。此问题仍然存在于ChromeDriver级别,因此如果此方有任何更新,请告诉我。
在后台运行Ubuntu测试的最简单方法是使用VNC Server。以下是您应该遵循的步骤:
从ubuntu终端安装vnc服务器:
sudo apt-get install vnc4server
使用任意数字启动服务器(我使用7)。第一次这样做是为vnc服务器输入密码(记住它!)。
vncserver:7
要全屏启动服务器,请将“几何”添加到屏幕分辨率的最后一个命令,例如:
vncserver:7-geometry 1920x1080
下载一些VNC Viewer。我使用Real VNC。
转到Real vnc viewer,启动新连接并输入:
VNC服务器: localhost:7
加密:让VNC服务器选择
按连接并输入您的vnc服务器密码(步骤2中的密码)。
应打开新窗口,在其中打开新终端。
从终端运行测试。我使用java maven项目,所以对我来说它就是这样的。导航到项目文件夹并运行: mvn clean install
如果您只想使用终端(无需打开vncviewer)在隐藏模式下运行测试,请使用以下命令:
cd path / to / project
xterm -display localhost:7 -e mvn clean install
如果要停止服务器: vncserver -kill:7
希望这会对你们中的许多人有所帮助。
答案 1 :(得分:0)
已删除答案。我已经复制了您的错误,而且给定的解决方案无效。