0

我目前在自动化 QA 工作。我们的项目使用 Java:jbehave、thucydides、selenium。我们正在使用 Ubuntu 操作系统。

每次我运行测试时,我都必须停止做所有事情(编码、浏览网页),因为每次单击或 selenium 的任何操作都会使驱动程序窗口(我们正在使用 chrome 驱动程序)成为焦点(使窗口处于活动状态),如果我做一些我搞砸了测试的事情。我们的团队因此浪费了很多时间。

我们已经尝试过 Phantomjs,它不能正常工作,找不到元素等......而且使用 vagrant 在虚拟机中运行测试也不适合我们(出于公司特定原因)。

如果 Chrome 驱动程序在启动时会接管活动窗口,那很好,只要它会继续在后台执行不同的操作。奇怪,但在我之前的项目(windows,c#,mstest)中,chromedriver 的行为与此完全相同,无需任何额外设置。请帮忙,我知道很少有其他团队有这个问题。似乎这个问题只在 Mac 和 linux 上。

4

2 回答 2

0

这个问题困扰了很久,终于找到了一个好的解决方案。这个问题仍然存在于 ChromeDriver 级别,所以如果这方面有任何更新,请告诉我。

在后台在 Ubuntu 中运行测试的最简单方法是使用 VNC 服务器。以下是您应该遵循的步骤:

  1. 从 ubuntu 终端安装 vnc 服务器:

    sudo apt-get install vnc4server

  2. 以任意数字启动服务器(我使用 7)。第一次输入 vnc 服务器的密码(记住它!)。

    vnc服务器:7

  3. 要以全屏方式启动服务器,请使用您的屏幕分辨率将“geometry”添加到最后一个命令,例如:

    vncserver:7-几何1920x1080

  4. 下载一些 VNC 查看器。我使用真正的 VNC。

  5. 转到 Real vnc 查看器,开始新连接并输入:

    VNC 服务器:本地主机:7

    加密:让 VNC Server 选择

  6. 按连接并输入您的 vnc 服务器密码(步骤 2 中的密码)。

  7. 应该打开新窗口,在其中打开新终端。

  8. 从终端运行您的测试。我使用 java maven 项目,所以对我来说它是这样工作的。导航到项目文件夹并运行:mvn clean install

如果您只想使用终端(不打开 vncviewer)以隐藏模式运行测试,请使用以下命令:

cd 路径/到/项目

xterm -display localhost:7 -e mvn clean install

如果要停止服务器: vncserver -kill :7

希望这会对你们中的许多人有所帮助。

于 2014-09-08T09:44:18.867 回答
0

答案已删除。我已经重现了您的错误,并且给定的解决方案不起作用。

于 2014-09-19T13:17:05.937 回答