如何设置webdiver在后台执行操作?

时间:2014-07-23 13:30:03

标签: selenium selenium-chromedriver thucydides

我目前正在从事自动化质量保证工作。我们使用Java的项目:jbehave,thucydides,selenium。我们正在使用Ubuntu OS。

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

我们已经尝试过Phantomjs,它没有正常工作,无法找到元素等...而且还使用vagrant在虚拟机中运行测试并不适用于我们(出于公司特定原因)。 / p>

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

2 个答案:

答案 0 :(得分:0)

长期遇到这个问题后,我终于找到了一个很好的解决方案。此问题仍然存在于ChromeDriver级别,因此如果此方有任何更新,请告诉我。

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

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

    sudo apt-get install vnc4server

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

    vncserver:7

  3. 要全屏启动服务器,请将“几何”添加到屏幕分辨率的最后一个命令,例如:

    vncserver:7-geometry 1920x1080

  4. 下载一些VNC Viewer。我使用Real VNC。

  5. 转到Real vnc viewer,启动新连接并输入:

    VNC服务器: localhost:7

    加密:让VNC服务器选择

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

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

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

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

    cd path / to / project

    xterm -display localhost:7 -e mvn clean install

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

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

答案 1 :(得分:0)

已删除答案。我已经复制了您的错误,而且给定的解决方案无效。