Name: foxdriver
Owner: Sauce Labs
Description: Foxdriver is a Node library which provides a high-level API to control Firefox over the Remote Debugging Protocol
Created: 2017-08-23 14:09:57.0
Updated: 2018-05-22 04:26:06.0
Pushed: 2017-11-28 10:29:32.0
Homepage: null
Size: 211
Language: JavaScript
GitHub Committers
User | Most Recent Commit | # Commits |
---|
Other Committers
User | Most Recent Commit | # Commits |
---|
Foxdriver is a Node library which provides a high-level API to control Firefox over the Remote Debugging Protocol.
To use Foxdriver in your project, run:
rn add foxdriver
m i foxdriver
The Firefox Remote Debugging Protocol consists of multiple actors that provide different methods. The Foxdriver API allows you to launch a Firefox instance and connects to the protocol interface automatically. From there you can access the methods of all actors.
Example - opening page and get console.logs
rt Foxdriver from 'foxdriver'
nc () => {
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()
You can also attach yourself to an already running Firefox browser. This requires to start the browser with the -start-debugger-server=<port>
cli argument and have the following settings set:
devtools.chrome.enabled: true
devtools.debugger.prompt-connection: false
devtools.debugger.remote-enabled: true
To attach yourself to the browser you then need to create a Foxdriver instance with the correct port and host and call the connect()
method:
rt Foxdriver from 'foxdriver'
nc () => {
const { browser, tab } = await Foxdriver.attach('localhost', 9222)
const preferences = await browser.preference.getAllPrefs()
// ...
Attaches client to an already running instance.
host
<String>
host where Firefox instance was launchedport
<Number>
port on which the Firefox instance was launched<Promise<Object>>
tab
<[Tab]>
list of opened tabsbrowser
<Browser>
browser instanceAttaches client to an already running instance.
options
<Object>
port
<Number>
port on which the Firefox instance should get launchedbin
<String>
path to Firefox binary (default: OS default path)args
<[String]>
list of arguments pass to fs.spawn
(default: []
)<Promise<Object>>
tab
<Tab>
opened tabbrowser
<Browser>
browser instanceDisconnects from the browser instance and closes browser if launched via launch()
method
Attaches to this tab
<Promise>
fulfills once request was sentDetaches from this tab
<Promise>
fulfills once request was sentReloads current page url.
<Promise>
fulfills once request was sentNavigates to a certain url
url
<String>
url to navigate to<Promise>
fulfills once request was sentFor more information please see API docs.