/selenium-chrome-proxy-plugin

Chrome plugin generator for setting private proxies

Primary LanguageJavaScriptMIT LicenseMIT

npm version Build Status Coverage Status Code Climate Inch CI

Dependency Status devDependency Status

selenium-chrome-proxy-plugin

Chrome plugin generator for setting private proxies to use with Selenium

This module is based on https://github.com/RobinDev/Selenium-Chrome-HTTP-Private-Proxy

If you have different needs regarding the functionality, please add a feature request.

Installation

npm install --save selenium-chrome-proxy-plugin

Usage

For usage please refer to examples/index.js. Do not forget to put chromedriver into same directory.

To run with debug output:

$ DEBUG=selenium-chrome-proxy-plugin node index

Module uses os.tmpdir() for temporary files (it depends on OS;/tmp for Linux). Temp directory may be changed by providing tempDir property in config: Please, do not forget to call plugin.cleanpu() to remove temporary files.

  const proxyConfig = {
    host: '<proxy_host>',
    port: '<proxy_port>', 
    username: '<proxy_username>', 
    password: '<proxy_password>',
    tempDir:  './temp' 
  };
  return new ProxyPlugin({
    proxyConfig: proxyConfig
    //chromeOptions: chromeOptions,
  })
    .then((plugin) => {
      console.log('PLUGIN READY');
      return new webdriver.Builder()
        .forBrowser('chrome')
        .setChromeOptions(plugin.chromeOptions)
        .build()
        .then((driver) => plugin.cleanup()
           .then(() => driver.get('http://whatismyip.host/'))
           .then(() => console.log('DONE'))
        )
        ;
    })
    .catch((err) => console.log('ERROR:', err))
    ;

It is also possible to provide chromeOptions:

return new ProxyPlugin({ proxyConfig: config, options: chromeOptions })
  .then((plugin) => {
  ...

May be used with callbacks:

 return new ProxyPlugin({
    proxyConfig: proxyConfig,
    //chromeOptions: chromeOptions,
  }, (err, plugin) => {
  
    ...
    
  });

More info along with working examples may be found in examples subdirectory.

Credits

Alexander

Links to package pages:

github.com   npmjs.com   travis-ci.org   coveralls.io   inch-ci.org

License

MIT