kfts/grunt-selenium-webdriver

在第三方环境中启动和停止 selenium 的实用工具。

安装: 41

依赖项: 0

建议者: 0

安全性: 0

星标: 0

关注者: 2

分支: 26

语言:JavaScript

dev-master 2022-02-09 18:24 UTC

This package is not auto-updated.

Last update: 2024-09-14 18:42:11 UTC


README

在 webdriver 或 hub 模式下启动和停止 selenium,与第三方 CI 平台兼容

我们编写这个插件是在遇到在所有本地和第三方环境中运行 selenium webdriver 测试的广泛问题时。如果你使用 circleci 并且想要运行无头测试,那么 selenium_phantom_hub 任务可以解决问题。

请注意,我们发现 selenium 和捆绑的 chromedriver 存在问题,但在当前时间,我们没有以与 phantomjs 相同的方式启动 chromedriver 的选项。我们的建议是使用 firefox 和 phantom 进行 CI 测试,而使用 saucelabs 和本地进行其他测试。

入门指南

此插件需要 Grunt ~0.4.2

如果你之前没有使用过 Grunt,请确保查看 入门指南,因为它解释了如何创建 Gruntfile,以及如何安装和使用 Grunt 插件。一旦熟悉这个过程,你可以使用以下命令安装此插件

npm install grunt-selenium-webdriver --save-dev

一旦安装了插件,就可以在 Gruntfile 中使用以下 JavaScript 代码启用它

grunt.loadNpmTasks('grunt-selenium-webdriver');

"selenium_webdriver" 任务

添加了三个任务(selenium_start,selenium_stop 和 selenium_phantom_hub)。任务不要求或设置任何选项

概述

    grunt.loadNpmTasks('grunt-selenium-webdriver');
    grunt.registerTask('e2e', [
        'selenium_phantom_hub',
        'mocha_e2e',
        'selenium_stop'    
    ]);

选项

你可以设置各种 selenium 命令行选项。一些环境已经在 4444 上运行了一个实例,在这种情况下,请在你的 grunt 配置中设置端口号

    selenium_start: {
        local: {
            options: { port: 4445 }
        }
    },

你可以在我们的测试中看到我们这样做了,请查看我们的 GruntFile 设置。选项包括

  • host
  • port
  • timeout
  • maxSession
  • phantomPort
  • firefoxProfile
  • displaySeleniumLog

使用示例

此任务旨在与你的首选测试运行器一起使用。当 grunt 退出时,服务器将被销毁,因此 grunt start_selenium 只会将服务器提供给其他 grunt 任务。如果你需要一个持久化 selenium 服务器的任务,请尝试 grunt-selenium-standalone。

如果你查看插件,你可以看到一个使用原始 selenium-webdriver node 模块的 mocha 测试示例。该项目还与 protractor 兼容。

selenium_start

http://127.0.0.1:4444/wd/hub 上启动 selenium 本地服务器,PATH 中包含所有浏览器,包括 phantom。然而,如果你在使用默认的 phantomjs 进行测试运行时遇到错误,请尝试下面的任务。

selenium_phantom_hub

启动 selenium 集群 hub 并将 phantomjs 连接到它,用于无头测试,此配置中只有一个客户端可用

selenium_stop

停止启动的服务器,如果你需要从无头模式更改为正常模式,则需要先停止

有问题吗?

此项目的理由是不同环境中文件位置的不一致性。如果你遇到问题

cd node_modules/grunt-selenium-webdriver
npm install
grunt test --trace

这应该会给你一些关于你的系统和相对路径等信息。在任务文件中还有一些注释掉的额外控制台语句,你可以启用它们。如果你无法从这里解决问题,请将此信息连同任何平台详细信息(例如 AWS、Travis 等)一起发送给我们。

贡献

请修复你发现的任何错误,并添加任何未涵盖的新案例,我们感激地接受拉取请求。

虽然没有正式的风格指南,但请务必维护现有的编码风格。为任何新功能或变更功能添加单元测试。使用 Grunt 检查您的代码并测试。

版本历史

0.2.432 support for node 0.12 
0.2.422 phantomPort option added 
0.2.421 added some mocha tests + improved branching logic separated for phantom and selenium components 
0.2.420 release using selenium-server-standalone-2.42.2.jar
0.2.391 initial release using selenium-server-standalone-2.39.0.jar
0.2.392 will have theses documentation updates
0.2.450 release using selenium-server-standalone-2.45.0.jar
0.2.451 adds --ignore-ssl-errors to phantomjs startup
0.2.461 release using selenium-server-standalone-2.47.1.jar
0.2.482 release using selenium-server-standalone-2.48.2.jar
0.2.501 release using selenium-server-standalone-2.50.1.jar
0.2.530 release using selenium-server-standalone-2.53.0.jar
0.2.531 added firefoxProfile and displaySeleniumLog options