Web Automation from C++

Web Automation from C++

We need to do some fairly complex web automation from C++ application (log into application, do some actions, logout), but performance is really important so we are looking at options.

  1. Is there a way to drive WebKit or other headless engine directly from C++, without the need for few more layers in between (like selenium+webdriver+network communication+...)? Chromedriver perhaps?

  2. If option 1 is not possible, what is the most optimal way to run WebDriver (with real browser) from C++?

2 Answers

You can use selenium server and JsonWireProtocol. In C++ you can implement CURL requests to selenium server and do web automation with C++.

Use this link first: My fork of Webdriver++.

There are also some C++ libraries that do this work. The first is Webdriver++ By sekogan but last commit was 3 years ago, and it seems not all things works for now. The second is my fork of Webdriver++, i've fixed some bugs and make this project as shared library, so you can use it in any C++ project.

This is an example of how you can use my My fork of Webdriver++.

#include <webdriverxx/webdriverxx.h>
using namespace webdriverxx;

int main() {
   WebDriver firefox = Start(Firefox());
   firefox
       .Navigate("")
       .FindElement(ByClass("class_name"))
       .SendKeys("Hello, world!")
       .Submit();
   return 0;    
}
1

You should look into PhantomJS (a headless WebKit browser), which comes with GhostDriver, which is the WebDriver protocol implementation for PhantomJS.

You will still need to use one of the WebDriver language bindings, which I'm not aware of any of the language bindings that are in C++, but perhaps one of the available languages could be used by your team for automation purposes.

Worst case, you could always create your WebDriver script in Python, and call the Python script from your C++ application.

2

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Marcus Vance
Author

Marcus Vance

Marcus Vance is a cybersecurity auditor and technology writer dedicated to educating the public about online safety, data privacy regulations, enterprise security, and emerging cyber threats.