dzentota / chrome-dev-tools
这是一个PHP库,允许在PHP脚本中使用Chrome DevTools协议与Google Chrome进行交互。高度灵感来自marty90/PyChromeDevTools。
Requires
- textalk/websocket: 1.0.*
Requires (Dev)
- phpunit/phpunit: 5.7.*
This package is auto-updated.
Last update: 2024-09-11 14:21:17 UTC
README
1. 描述
这是一个PHP库,允许在PHP脚本中使用Chrome DevTools Protocol进行交互。要使用此工具,您必须运行具有remote-debugging
选项的Google Chrome实例,如下例所示。
google-chrome --remote-debugging-port=9222
您可能还想通过使用--enable-benchmarking
和--enable-net-benchmarking
选项来启用进一步的Chrome基准测试功能。您可以使用--headless
选项以无头模式运行Chrome。
2. 先决条件
更新后的Google-Chrome版本
3. 操作
3.1 初始化
在您的PHP脚本中,首先必须创建一个Chrome对象,如下所示
$chrome = new ChromeDevTools\Chrome();
您可以通过手动写入来指定Chrome的主机和端口
$chrome = new ChromeDevTools\Chrome($host="1.1.1.1", $port=1234);
默认使用localhost:9222
。
3.1 运行命令
要将命令发送到Chrome,只需在Chrome对象上调用相应的方法,并传递所需的参数。例如,要访问页面,请写入
$chrome->Page->navigate(['url' => 'http://example.com/']);
命令的返回值作为函数的返回值传递,已解释为JSON。
3.1 接收事件
Chrome会为浏览器中的特定事件发送消息。您可以通过两种方式获取它们;它们已作为JSON解释返回。在运行任何新命令之前,删除所有未读事件。
a) 您可以通过编写以下内容从已接收消息的队列中弹出一个消息
$message = $chrome->waitMessage();
该方法接受一个可选的参数timeout
,即它放弃并返回null
的秒数。默认值为1。
b) 您可以通过编写以下内容等待特定事件
$result = $chrome->waitEvent('event_name'); $matchingEvent = $result['matching_message']; $messages = $result['messages'];
它等待直到到达具有event_name
的事件,或者超时。 $matchingEvent
包含第一个找到的具有event_name
的事件,而$messages
包含所有在之前到达的消息。超时值可以像之前的方法一样配置。