dmore / behat-chrome-extension
Behat 扩展,用于控制 Chrome 而无需 Selenium
1.4.0
2022-04-10 04:25 UTC
Requires
- php: >=7.1
- behat/behat: ^3.0.4
- dmore/chrome-mink-driver: ^2.4.1
- friends-of-behat/mink-extension: ^2.0
Requires (Dev)
- phpunit/phpunit: ^8.5 || ^9.5
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
贡献
鼓励您分叉此存储库并贡献您自己的改进。