README.md in browsed-0.2.5 vs README.md in browsed-0.2.6

- old
+ new

@@ -1,8 +1,8 @@ # Browsed -Browsed is a lightweight Capybara/PhantomJS/Selenium framework with tools and utilities for randomizing user agents, resolutions etc. +Browsed is a wrapper around Capybara/Selenium with tools for proxy management and utilities for randomizing user agents, resolutions etc. ## Installation Add this line to your application's Gemfile: @@ -19,33 +19,28 @@ $ gem install browsed ## Usage ```ruby -# driver can be :poltergeist (PhantomJS) or :selenium/:selenium_chrome/:selenium_chrome_headless (Firefox/Chrome) -# browser can be: :phantomjs, :chrome, :chrome_headless, :firefox, :firefox_headless +# browser can be: :chrome, :firefox or :phantomjs (PhantomJS might be deprecated eventually though) # device can be :desktop, :phone (iphone/android), :tablet (ipad/android), :iphone, :ipad, :android_phone, :android_tablet -client = Browsed::Client.new(driver: :selenium_chrome, browser: :chrome, device: :desktop) +client = Browsed::Client.new(browser: :chrome, headless: false, device: :desktop) +client.session.visit "https://www.google.com" ``` -If you want to use proxies (note that proxy authentication is only possible using Poltergeist/PhantomJS): +Proxy auth support is supported using two different methods: -```ruby -proxy = {host: "127.0.0.1", port: 8080, username: "foo", password: "bar"} -client = Browsed::Client.new(driver: :poltergeist, browser: :phantomjs, device: :desktop, proxy: proxy) -``` +1) For non-headless Google Chrome a plugin will be generated on the fly and used by Chrome to auto-fill username/password for the proxy. Major downside with this approach is that Chrome can't be run in headless mode. -Use the session property to interact with the underlying Capybara::Session object: +2) Using the NodeJS library proxy-chain. Browsed will spawn a Node sub-process that will run a local proxy server that forwards all packets to the final proxy server. When the client is finished (by issuing client.quit!) the proxy-chain server will also be terminated. Major downside: depends on Node being installed. +Here's an example using a proxy via proxy-chain: + ```ruby -client.session.visit("https://www.google.com") +proxy = {host: "127.0.0.1", port: 8080, username: "foo", password: "bar", mode: :proxy_chain} +client = Browsed::Client.new(browser: :chrome, headless: false, device: :desktop, proxy: proxy) +client.session.visit "https://www.google.com" ``` - -## Support - -Proxy authentication is currently only supported by PhantomJS and Chrome not running in headless mode. - -Chrome proxy authentication support is somewhat of a hack and works by dynamically generating a plugin on the fly and then starting Chrome with that plugin. Unfortunately this doesn't work in headless Chrome. ## Development After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.