minigame
This commit is contained in:
327
node_modules/chromedriver/README.md
generated
vendored
Normal file
327
node_modules/chromedriver/README.md
generated
vendored
Normal file
@@ -0,0 +1,327 @@
|
||||
# ChromeDriver
|
||||
|
||||
[](https://github.com/giggio/node-chromedriver/actions/workflows/build.yml)
|
||||
[](https://www.npmjs.com/package/chromedriver)
|
||||
|
||||
An NPM wrapper for Selenium [ChromeDriver](https://sites.google.com/chromium.org/driver/).
|
||||
|
||||
## Building and Installing
|
||||
|
||||
```shell
|
||||
npm install chromedriver
|
||||
```
|
||||
|
||||
Or grab the source and
|
||||
|
||||
```shell
|
||||
node ./install.js
|
||||
```
|
||||
|
||||
What this is really doing is just grabbing a particular "blessed" (by
|
||||
this module) version of ChromeDriver. As new versions are released
|
||||
and vetted, this module will be updated accordingly.
|
||||
|
||||
The package has been set up to fetch and run ChromeDriver for MacOS (darwin),
|
||||
Linux based platforms (as identified by Node.js), and Windows. If you
|
||||
spot any platform weirdness, let us know or send a patch.
|
||||
|
||||
## Force download
|
||||
|
||||
By default this package, when installed, will search for an existing
|
||||
Chromedriver binary in your configured temp directory. If found, and it is the
|
||||
correct version, it will simply copy it to your node_modules directory. You can
|
||||
force it always download by configuring it:
|
||||
|
||||
```shell
|
||||
npm install chromedriver --chromedriver-force-download
|
||||
```
|
||||
|
||||
Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file.
|
||||
|
||||
```
|
||||
chromedriver_force_download=true
|
||||
```
|
||||
|
||||
Another option is to use PATH variable `CHROMEDRIVER_FORCE_DOWNLOAD`.
|
||||
|
||||
```shell
|
||||
CHROMEDRIVER_FORCE_DOWNLOAD=true npm install chromedriver
|
||||
```
|
||||
|
||||
## Custom binaries url
|
||||
|
||||
To use a mirror of the ChromeDriver binaries use npm config property `chromedriver_cdnurl`.
|
||||
Default is `https://chromedriver.storage.googleapis.com`.
|
||||
|
||||
```shell
|
||||
npm install chromedriver --chromedriver_cdnurl=https://npmmirror.com/mirrors/chromedriver
|
||||
```
|
||||
|
||||
Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file.
|
||||
|
||||
```
|
||||
chromedriver_cdnurl=https://npmmirror.com/mirrors/chromedriver
|
||||
```
|
||||
|
||||
Another option is to use PATH variable `CHROMEDRIVER_CDNURL`.
|
||||
|
||||
```shell
|
||||
CHROMEDRIVER_CDNURL=https://npmmirror.com/mirrors/chromedriver npm install chromedriver
|
||||
```
|
||||
|
||||
## Custom binaries file
|
||||
|
||||
To get the chromedriver from the filesystem instead of a web request use the npm config property `chromedriver_filepath`.
|
||||
|
||||
```shell
|
||||
npm install chromedriver --chromedriver_filepath=/path/to/chromedriver_mac64.zip
|
||||
```
|
||||
|
||||
Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file.
|
||||
|
||||
```
|
||||
chromedriver_filepath=/path/to/chromedriver_mac64.zip
|
||||
```
|
||||
|
||||
Another option is to use the PATH variable `CHROMEDRIVER_FILEPATH`
|
||||
|
||||
```shell
|
||||
CHROMEDRIVER_FILEPATH=/path/to/chromedriver_mac64.zip
|
||||
```
|
||||
|
||||
This variable can be used to set either a `.zip` file or the binary itself, eg:
|
||||
|
||||
```shell
|
||||
CHROMEDRIVER_FILEPATH=/bin/chromedriver
|
||||
```
|
||||
|
||||
## Custom download options
|
||||
|
||||
Install through a proxy.
|
||||
|
||||
```shell
|
||||
npm config set proxy http://[user:pwd]@domain.tld:port
|
||||
npm config set https-proxy http://[user:pwd]@domain.tld:port
|
||||
```
|
||||
|
||||
Use different User-Agent.
|
||||
|
||||
```shell
|
||||
npm config set user-agent "Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Firefox/52.0"
|
||||
```
|
||||
|
||||
## Skipping chromedriver download
|
||||
|
||||
You may wish to skip the downloading of the chromedriver binary file, for example if you know for certain that it is already there or if you want to use a system binary and just use this module as an interface to interact with it.
|
||||
|
||||
To achieve this you can use the npm config property `chromedriver_skip_download`.
|
||||
|
||||
```shell
|
||||
npm install chromedriver --chromedriver_skip_download=true
|
||||
```
|
||||
|
||||
Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file.
|
||||
|
||||
```
|
||||
chromedriver_skip_download=true
|
||||
```
|
||||
|
||||
Another option is to use the PATH variable `CHROMEDRIVER_SKIP_DOWNLOAD`
|
||||
|
||||
```shell
|
||||
CHROMEDRIVER_SKIP_DOWNLOAD=true
|
||||
```
|
||||
|
||||
## Running
|
||||
|
||||
```shell
|
||||
bin/chromedriver [arguments]
|
||||
```
|
||||
|
||||
And npm will install a link to the binary in `node_modules/.bin` as
|
||||
it is wont to do.
|
||||
|
||||
## Running with Selenium WebDriver
|
||||
|
||||
```javascript
|
||||
require('chromedriver');
|
||||
var webdriver = require('selenium-webdriver');
|
||||
var driver = new webdriver.Builder()
|
||||
.forBrowser('chrome')
|
||||
.build();
|
||||
```
|
||||
|
||||
(Tested for selenium-webdriver version `2.48.2`)
|
||||
|
||||
The path will be added to the process automatically, you don't need to configure it.
|
||||
But you can get it from `require('chromedriver').path` if you want it.
|
||||
|
||||
## Running via node
|
||||
|
||||
The package exports a `path` string that contains the path to the
|
||||
chromedriver binary/executable.
|
||||
|
||||
Below is an example of using this package via node.
|
||||
|
||||
```javascript
|
||||
var childProcess = require('child_process');
|
||||
var chromedriver = require('chromedriver');
|
||||
var binPath = chromedriver.path;
|
||||
|
||||
var childArgs = [
|
||||
'some argument'
|
||||
];
|
||||
|
||||
childProcess.execFile(binPath, childArgs, function(err, stdout, stderr) {
|
||||
// handle results
|
||||
});
|
||||
|
||||
```
|
||||
|
||||
You can also use the start and stop methods:
|
||||
|
||||
```javascript
|
||||
var chromedriver = require('chromedriver');
|
||||
|
||||
args = [
|
||||
// optional arguments
|
||||
];
|
||||
chromedriver.start(args);
|
||||
// run your tests
|
||||
chromedriver.stop();
|
||||
|
||||
```
|
||||
|
||||
With the latest version, you can optionally receive a Promise from the `chromedriver.start` function:
|
||||
|
||||
```javascript
|
||||
var returnPromise = true;
|
||||
chromedriver
|
||||
.start(args, returnPromise)
|
||||
.then(() => {
|
||||
console.log('chromedriver is ready');
|
||||
});
|
||||
```
|
||||
|
||||
Note: if your tests are ran asynchronously, chromedriver.stop() will have to be
|
||||
executed as a callback at the end of your tests
|
||||
|
||||
## Versioning
|
||||
|
||||
The NPM package version tracks the version of chromedriver that will be installed,
|
||||
with an additional build number that is used for revisions to the installer.
|
||||
You can use the package version number to install a specific version, or use the
|
||||
setting to a specific version. If there is a new Chromedriver version available which is not yet available as a version of `node-chromedriver`, the npm command `npm run update-chromedriver` in this repository can be used to make the required updates to this module, please submit the change as a PR. To always install the latest version of Chromedriver,
|
||||
use `LATEST` as the version number:
|
||||
|
||||
```shell
|
||||
npm install chromedriver --chromedriver_version=LATEST
|
||||
```
|
||||
|
||||
Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file.
|
||||
|
||||
```
|
||||
chromedriver_version=LATEST
|
||||
```
|
||||
|
||||
Another option is to use env variable `CHROMEDRIVER_VERSION`.
|
||||
|
||||
```shell
|
||||
CHROMEDRIVER_VERSION=LATEST npm install chromedriver
|
||||
```
|
||||
|
||||
You can force the latest release for a specific major version by specifying `LATEST_{VERSION_NUMBER}`:
|
||||
|
||||
```shell
|
||||
CHROMEDRIVER_VERSION=LATEST_80 npm install chromedriver
|
||||
```
|
||||
|
||||
You can also force a different version of chromedriver by replacing `LATEST` with a version number:
|
||||
|
||||
```shell
|
||||
CHROMEDRIVER_VERSION=75.0.3770.140 npm install chromedriver
|
||||
```
|
||||
|
||||
## Detect ChromeDriver Version
|
||||
|
||||
The NPM package version may not be always compatible to your Chrome version.
|
||||
To get the chromedriver that corresponds to the version of Chrome installed,
|
||||
you can use the npm config property `detect_chromedriver_version`.
|
||||
|
||||
```shell
|
||||
npm install chromedriver --detect_chromedriver_version
|
||||
```
|
||||
|
||||
Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file.
|
||||
|
||||
```
|
||||
detect_chromedriver_version=true
|
||||
```
|
||||
|
||||
Another option is to use environment variable `DETECT_CHROMEDRIVER_VERSION`.
|
||||
|
||||
```shell
|
||||
DETECT_CHROMEDRIVER_VERSION=true npm install chromedriver
|
||||
```
|
||||
|
||||
**Note:** When the property `detect_chromedriver_version` is provided,
|
||||
`chromedriver_version` and `chromedriver_filepath` properties are ignored.
|
||||
|
||||
## Include Chromium
|
||||
|
||||
If you don't have Chrome installed, you can check for Chromium version instead by setting the argument `include_chromium` to `true`.
|
||||
|
||||
```shell
|
||||
npm install chromedriver --include_chromium
|
||||
```
|
||||
|
||||
Or add property into your [`.npmrc`](https://docs.npmjs.com/files/npmrc) file.
|
||||
|
||||
```
|
||||
include_chromium=true
|
||||
```
|
||||
|
||||
Another option is to use environment variable `INCLUDE_CHROMIUM`.
|
||||
|
||||
```shell
|
||||
INCLUDE_CHROMIUM=true npm install chromedriver
|
||||
```
|
||||
|
||||
**Note:** The property `INCLUDE_CHROMIUM` is ignored if the property `DETECT_CHROMEDRIVER_VERSION` is not used.
|
||||
|
||||
## A Note on chromedriver
|
||||
|
||||
Chromedriver is not a library for NodeJS.
|
||||
|
||||
This is an _NPM wrapper_ and can be used to conveniently make ChromeDriver available.
|
||||
It is not a Node.js wrapper.
|
||||
|
||||
## Supported Node.js versions
|
||||
|
||||
We will do our best to support every supported Node.js versions.
|
||||
See [nodejs/Release](https://github.com/nodejs/Release) for
|
||||
the current supported versions. You can also view our
|
||||
[build scripts](https://github.com/giggio/node-chromedriver/blob/main/.github/workflows/build.yml#L41) and check the versions there.
|
||||
|
||||
## Contributing
|
||||
|
||||
Questions, comments, bug reports, and pull requests are all welcome. Submit them at
|
||||
[the project on GitHub](https://github.com/giggio/node-chromedriver/).
|
||||
|
||||
Bug reports that include steps-to-reproduce (including code) are the
|
||||
best. Even better, make them in the form of pull requests.
|
||||
|
||||
We have added
|
||||
[VS Code Remote support with containers](https://code.visualstudio.com/docs/remote/containers).
|
||||
If you are on Windows, set `git config core.autocrlf input` so you don't get git errors.
|
||||
|
||||
## Author
|
||||
|
||||
[Giovanni Bassi](https://github.com/giggio), with collaboration from
|
||||
[lots of good people](https://github.com/giggio/node-chromedriver/graphs/contributors).
|
||||
|
||||
Thanks for Obvious and their PhantomJS project for heavy inspiration! Check their project on [Github](https://github.com/Obvious/phantomjs/).
|
||||
|
||||
## License
|
||||
|
||||
Licensed under the Apache License, Version 2.0.
|
||||
Reference in New Issue
Block a user