JxBrowser is compatible with Selenium WebDriver. To use Selenium with JxBrowser perform the following steps:

1. Download ChromeDriver and extract it somewhere.

2. Run JxBrowser with the --remote-debugging-port switcher as shown in the example below:

import com.teamdev.jxbrowser.chromium.Browser;
import com.teamdev.jxbrowser.chromium.BrowserPreferences;
import com.teamdev.jxbrowser.chromium.swing.BrowserView;

import javax.swing.*;
import java.awt.*;

 * This sample demonstrates how to create Browser instance and provide access to the Chromium remote debugging server.
public class BrowserSample {
    public static void main(String[] args) {
        // When Chromium process starts with this switcher, Chromium remote debugging server will be available
        // at http://localhost:9222

        Browser browser = new Browser();
        BrowserView browserView = new BrowserView(browser);

        JFrame frame = new JFrame();
        frame.add(browserView, BorderLayout.CENTER);
        frame.setSize(700, 500);


3. Create Selenium WebDriver and use the remote debugging port (9222) from the previous step to connect to JxBrowser.

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriverService;
import org.openqa.selenium.chrome.ChromeOptions;
import org.openqa.selenium.remote.DesiredCapabilities;
import org.openqa.selenium.remote.RemoteWebDriver;

import java.io.File;
import java.io.IOException;

 * This class demonstrates how to create Selenium WebDriver and connect to the Chromium remote debugging server
public class SeleniumSample {
    public static void main(String[] args) throws IOException {
        // Create ChromeDriverService that allows you to run ChromeDriver and start it.
        ChromeDriverService service = new ChromeDriverService.Builder()
                .usingDriverExecutable(new File("path/to/my/chromedriver"))

        DesiredCapabilities capabilities = new DesiredCapabilities();
        ChromeOptions options = new ChromeOptions();

        // The address string should be in the form of "hostname/ip:port". 9222 is the port that you specified in the
        // --remote-debugging-port Chromium switcher before starting JxBrowser.
        String remoteDebuggingAddress = "localhost:9222";

        // Set the address to the appropriate ChromeOption option and apply it to the DesiredCapabilities.
        // The full list of these options you can find at
        // https://sites.google.com/a/chromium.org/chromedriver/capabilities
        options.setExperimentalOption("debuggerAddress", remoteDebuggingAddress);
        capabilities.setCapability(ChromeOptions.CAPABILITY, options);

        // Create a WebDriver instance using URL provided by the ChromeDriverService and capabilities with
        // JxBrowser remote debugging address.
        WebDriver driver = new RemoteWebDriver(service.getUrl(), capabilities);

        // Now you can use WebDriver.

        // Quit from the current session to prevent Chromium remote debugging server hang.

This approach was tested with Selenium WebDriver 2.46 and ChromeDriver 2.16.