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



我目前从事自动化QA工作。我们的项目使用Java: jbehave,修昔底德,selenium。我们在Ubuntu操作系统上工作。

每次我运行我的测试,我不得不停止做一切(编码,浏览网页),因为每次点击或硒的任何动作是采取驱动程序窗口(我们正在使用chrome驱动程序)的焦点(使窗口活跃),如果我做一些事情,我搞砸了测试。我们的团队因此浪费了很多时间。

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

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

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

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

  1. 从ubuntu终端安装vnc server:

    sudo apt-get install vnc4server

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

    vncserver:7

  3. 要全屏启动服务器,请在最后一个命令中添加"geometry",以显示屏幕分辨率,例如:

    vncserver:7 -geometry 1920x1080

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

  5. 进入Real vnc查看器,启动新连接并输入:

    VNC Server: localhost:7

    Encryption: 让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

对于我来说(我在使用Chrome的Grails项目的功能测试中遇到了同样的问题;

ChromeOptions options = new ChromeOptions();
options.addArguments("--start-maximized --disable-popup-blocking");    
new ChromeDriver(options);

最新更新