带有咕噜声的 WebDriver + Protractor

标签 webdriver gruntjs protractor

我正在尝试使用 WebDriver 和 Protractor 运行端到端测试。当我手动运行它时没问题:
网络驱动程序管理器启动
进而
Protractor 测试-UI/e2e/conf.js

现在我想从 grunt 命令启动它们,所以我尝试使用 grunt-shell,用“&&”加入它们。但是当 WebDriver 等待时,测试永远不会开始。以前有人试过这个吗?

谢谢。

最佳答案

有一个名为 Grunt-shell-spawn ( Github Repo ) 的 Grunt-shell 分支,它允许您异步运行后台进程。这恰好与启动 selenium webdriver 服务器一起工作,帮助自动 Protractor 测试过程。有一些专门用于启动 webdriver 服务器的 grunt 插件,但根据我的经验,它们都有一些小错误,一旦测试完成就会导致错误,或者需要您标记一个标志 keepAlive: true这意味着它不会终止 webdriver 服务器进程,迫使您按 ctrl+c 或关闭并重新打开命令提示符,当开发人员使用功能测试和持续集成 (CI) 服务器时,这可能会导致很多问题。 Grunt-shell-spawn 具有终止进程的能力,正如您在我的“测试”任务结束时所看到的那样,这对于保持一致性和易用性来说非常宝贵。

'use strict';

module.exports = function(grunt) {

grunt.loadNpmTasks('grunt-shell-spawn');
grunt.loadNpmTasks('grunt-protractor-runner');

var path = require('path'); 

grunt.initConfig({
  ...
  ...
  ...
  shell: {
    updateserver: {
      options: {
        stdout: true
      },
      command: "node " + path.resolve('node_modules/protractor/bin/webdriver-manager') + ' update --standalone --chrome'
    },
     startserver: {
      options: {
        stdout:false,
        stdin: false,
        stderr: false,
        async:true
      },
      command:  'node ' + path.resolve('node_modules/protractor/bin/webdriver-manager') + ' start --standalone'
    },
});

grunt.registerTask('test',[
    'shell:updateserver',
    'shell:startserver',
    'protractor:e2e',
    'shell:startserver:kill'
]);

关于带有咕噜声的 WebDriver + Protractor,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22327752/

相关文章:

javascript - 单击按钮时,期望显示文本,但找不到元素 - Protractor

google-chrome - driver.manage().window().maximize();不管用

python - 无法在 python selenium 中使用 is_displayed 属性

javascript - Grunt 配置监视和 karma :unit in single task

gruntjs - 可传递的 grunt 插件依赖项?

gruntjs - 从我的 Gruntfile 中的 JSHint 中排除子目录?

javascript - 在 Angular2 中使用 Protractor

javascript - Protractor 图像上传不适用于 IE 和 firefox

python - 如何在每个请求上使用 selenium python 轮换各种用户代理

java - Selenium:网页弹出/警报/通知消息的元素不可见异常