Example of automation using WebDriver/ChromeDriver2
Example code is available in the next comment by Finn Hughes.
See the WebDriver for Google Chrome: https://sites.google.com/a/chromium.org/chromedriver/
ChromeDriver2 has been verified to work with CEF3: https://bitbucket.org/chromiumembedded/cef/issues/549/cef3-add-webdriver-support
There is a tutorial in upstream CEF on how to use Chrome Driver with CEF: https://bitbucket.org/chromiumembedded/cef/wiki/UsingChromeDriver
See also: https://github.com/sokolnikovalexey/cef-pyhton-selenium
In my cefpython application I specify a remote debug port:
switches = {"remote-debugging-port": "22222"}
cefpython.Initialize(settings, switches)
Run chromedriver:
chromedriver --port=33333
I'm using selenium python bindings:
from selenium import webdriver
chromeOptions = {'debuggerAddress':'192.168.1.42:22223'}
capabilities = {'chromeOptions':chromeOptions}
browser = webdriver.Remote('http://127.0.0.1:33333' capabilities)
browser.get("http://www.google.com"
....
I wanted chromedriver and selenium on a remote machine so used an ssh tunnel on the client:
ssh -L 0.0.0.0:22223:localhost:22222 localhost
A nice bonus is that in chrome I can access "192.168.1.42:22223" and can use the chrome dev tools on the open tabs in my remote browser.
P.S. If you don't want to specify the port you need to add the "--remote-debugging-port" chromedriver supplies your app to the switches dictionary. Also in the selenium script:
options = webdriver.ChromeOptions()
options.binary_location = "/path/to/app"
browser = webdriver.Chrome(chrome_options=options)
Original comment by [email protected] on 13 Jan 2014 at 1:57
@finn.hughes1 31.0 release added support for Developer Tools. Also the --remote-debugging-port switch might not work as expected anymore, because a random port is generated by default when ApplicationSettings."remote_debugging_port" is not set. Thus you need to set it explicitilly (also to disable).
Original comment by [email protected] on 11 Aug 2014 at 7:16