A Node.js frontend for the Remote Debugger protocol used by Appium to connect to iOS webviews and Safari. Written using ES6+.
Issues for this repo are disabled. Log any issues at the main Appium repo's issue tracker.
Safari implements a wonky version of the WebKit API. It is not documented. But there is good documentation for the closely related API from Chrome DevTools, to be found here;
This is an event emitter, which emits a RemoteDebugger.EVENT_PAGE_CHANGE
event when there has been a change to the page. This should be caught and handled as the calling code wishes. It also emits a RemoteDebugger.EVENT_DISCONNECT
event when the server disconnects the last application connected.
The steps to using the RemoteDebugger
involve instantiating an object, then running connect
and selectApp
. After this the instance will be listening for events from the server (i.e., the webview or browser).
The remote debugger uses the standard Selenium Atoms
to interact with web pages. These need to manually updated when necessary. To do
so, simply update the branch in Makefile
by modifying the SELENIUM_BRANCH
variable. Then run npm run build:atoms
, test and create a pull request with
the resulting changed atoms directory.
npm run watch
gulp watch
npm test