脚踏车
Foxdriver是一个节点库,它提供高级API来控制Firefox对远程调试协议的控制. 0.6.0版本现在支持在启动浏览器之前添加自定义配置文件(即 cert9.db)
开始
安装
要在您的工程中使用 Foxdriver, 运行 :
$ npm i @benmalka/foxdriver
使用量
Firefox远程调试协议由多个提供不同方法的行为体组成. Foxdriver API允许您启动一个 Firefox 实例并自动连接到协议界面. 从那里你可以使用所有演员的方法.
示例 - 打开页面并获得控制台.logs
import Foxdriver from '@benmalka/foxdriver'
(async () => {
const { browser, tab } = await Foxdriver.launch({
url: 'https://www.mozilla.org/en-US'
});
// enable actor
await tab.console.startListeners();
// wait until page is loaded
await new Promise((resolve) => setTimeout(resolve, 3000));
// receive logs and page errors
const logs = await tab.console.getCachedMessages();
console.log(logs);
// close browser
browser.close();
})()
您也可以连接到已经运行的 Firefox 浏览器中 。 这需要启动浏览器 -start-debugger-server=<port> cli 参数和设置如下:
devtools.chrome.enabled: truedevtools.debugger.prompt-connection: falsedevtools.debugger.remote-enabled: true
要连接到浏览器, 您需要创建一个正确的端口和主机的 Foxdriver 实例, 并呼叫 connect() 方法 :
import Foxdriver from '@benmalka/foxdriver'
(async () => {
const { browser, tab } = await Foxdriver.attach('localhost', 9222);
const preferences = await browser.preference.getAllPrefs();
// ...
})()
API 密码
脚踏车
Foxdriver.attach (主机, 端口)
将客户端附加到已运行实例中 .
host<String>启动 Firefox 实例的主机port<Number>启动 Firefox 实例的端口- 返回 :
<Promise<Object>>tab<[Tab]>打开的标签列表browser<Browser>浏览器实例
Foxdriver. launch( 选项)
将客户端附加到已运行实例中 .
options<Object>port<Number>启动 Firefox 实例的端口bin<String>firefox 二进制路径( 默认: OS 默认路径)args<[String]>转到fs.spawn(默认 :[](中文(简体) )customPrefs<Object>在浏览器启动之前,您可以通过设置预览的密钥值对来设定自己的首选项。 请注意,不可能覆盖所需的预告,即.devtools.chrome.enabled: truedevtools.debugger.prompt-connection: falsedevtools.debugger.remote-enabled: true
customProfileFiles<[String]>数组 绝对 要复制到随机生成的配置文件文件夹的文件路径。 这在使用Firefox中自签的证书时很有帮助. 看这里 Firefox 中如何使用自签名证书
- 返回 :
<Promise<Object>>tab<Tab>打开标签browser<Browser>浏览器实例
类: 浏览器
关闭( c)
从浏览器实例中断开连接, 如果通过 : launch() 方法
类: 标签
选项卡.attach ()
附着于此标签
- 返回 :
<Promise>发送请求后完成
选项卡.detach ()
从此标签中删除
- 返回 :
<Promise>发送请求后完成
选项卡.reload ()
重新装入当前页面 URL.
- 返回 :
<Promise>发送请求后完成
选项卡.cache 残废(残废)
禁用缓存 .
disable<Boolean>如果是真的, 缓存是断裂的- 返回 :
<Promise>发送请求后完成
选项卡.navigateTo(url)
导航到某个 URL
url<String>浏览到- 返回 :
<Promise>发送请求后完成
选项卡.onTabNavigated(召回)
标签导航端发生事件
callback<Function>将被调用为活动
详情请查阅 API 文件。 。 。 .