Posted 8 months ago. Visible to the public.

How to control Chromedriver using curl

Here is how to use Chromedriver without libraries like selenium-webdriver. This can be useful for debugging.

The following example visits a web page and reads the a headline's text contents.

  1. Create a session:

    Copy
    curl -XPOST http://localhost:9515/session -d '{"desiredCapabilities":{"browserName":"chrome"}}'

    You will get a JSON response containing lots of information about your Chrome session, including a sessionId. Use this to send any future commands to your chromedriver session.

    Copy
    {"sessionId":"your-session-id-here","status":0,"value":{...}}
  2. Visit a URL like this:

    Copy
    curl http://localhost:9515/session/your-session-id-here/url -d '{"url":"http://example.com/"}'
    Copy
    {"sessionId":"...","status":0,"value":null}
  3. Finding elements is fairly simple:

    Copy
    curl http://localhost:9515/session/your-session-id-here/element -d '{"using":"tagName","value":"h1"}'
    Copy
    {"sessionId":"...","status":0,"value":{"ELEMENT":"element-object-id-here"}}
  4. Read the element's text content by using the element's identifier received above:

    Copy
    curl http://localhost:9515/session/your-session-id-here/element/element-object-id-here/text
    Copy
    {"sessionId":"...","status":0,"value":"Example Domain"}
  5. To close Chrome, terminate your session:

    Copy
    curl -XDELETE http://localhost:9515/session/your-session-id-here
    Copy
    {"sessionId":"...","status":0,"value":null}

Chromedriver follows the W3C WebDriver spec. There are tons of things you can do with it, but tasks that are simple using something like selenium-webdriver can be quite difficult.
However, for simple debugging or remote-controlling, consider just using curl.

By refactoring problematic code and creating automated tests, makandra can vastly improve the maintainability of your Rails application.

Owner of this card:

Avatar
Arne Hartherz
Last edit:
8 months ago
by Arne Hartherz
About this deck:
We are makandra and do test-driven, agile Ruby on Rails software development.
License for source code
Posted by Arne Hartherz to makandra dev
This website uses cookies to improve usability and analyze traffic.
Accept or learn more