dmore/behat-chrome-extension

Behat 扩展,用于控制 Chrome 而无需 Selenium

1.4.0 2022-04-10 04:25 UTC

This package is auto-updated.

Last update: 2024-09-09 15:00:48 UTC


README

Behat 扩展,无需 Selenium 也能控制 Chrome。

它直接通过 HTTP 和 WebSocket 与 Chrome 通信,这使得它的运行速度至少比使用 Selenium 的 Chrome 快两倍。

对于 Chrome 59+,它支持无头模式,消除了安装显示服务器的需求及其带来的开销。

该驱动程序在 1800 个场景和 19000 个步骤的 Behat 套件上进行测试和基准测试。使用 Chrome 60 无头模式,它可以成功运行少于 18 分钟。

使用 xvfb 和 Selenium 在 Chrome 58 上运行相同的套件需要约 60 分钟。

安装

composer require dmore/behat-chrome-extension

要求

  • 运行带有远程调试功能的 Google Chrome 或 Chromium

示例

google-chrome-stable --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222

或无头(59+)

google-chrome-unstable --disable-gpu --headless --remote-debugging-address=0.0.0.0 --remote-debugging-port=9222

官方 Docker 镜像包括运行无头模式的 Chrome 60。

请参阅 https://gitlab.com/DMore/behat-chrome-skeleton 以获取一个完整工作的示例。

使用方法

default:
    extensions:
        DMore\ChromeExtension\Behat\ServiceContainer\ChromeExtension: ~
        Behat\MinkExtension:
            browser_name: chrome
            base_url: https://127.0.0.1
            sessions:
                default:
                    chrome:
                        api_url: "https://127.0.0.1:9222"

配置

以下可选配置设置可用:

validate_certificate

默认值:true

设置为 false 以忽略无效的 SSL 证书。

socket_timeout

默认值:10

在将 HTTP 或 WebSocket 连接到 Chrome 浏览器视为已死之前,等待多少秒。

download_behavior

默认值:回退到浏览器配置

设置为 'allow' 以允许下载。

dom_wait_timeout

默认值:3000

在每次操作/转换后我们应等待多少毫秒以使 DOM 准备就绪。

download_path

默认值:/tmp

设置为一个目录路径,您希望文件下载到该路径。需要 download_behavior: allow

示例

default:
    extensions:
        DMore\ChromeExtension\Behat\ServiceContainer\ChromeExtension: ~
        Behat\MinkExtension:
            browser_name: chrome
            base_url: https://127.0.0.1
            sessions:
                default:
                    chrome:
                        api_url: "https://127.0.0.1:9222"
                        download_behavior: allow
                        download_path: /download
                        validate_certificate: false

贡献

鼓励您分叉此存储库并贡献您自己的改进。