Git Product home page Git Product logo

appium-remote-debugger's Introduction

appium-remote-debugger

Build Status

Release

A Node.js frontend for the Remote Debugger protocol used by Appium to connect to iOS webviews and Safari. Written using ES6+.

Safari's version of the WebKit API

Safari implements a wonky version of the WebKit API. It is not documented. The JSON version of the protocol is documented in the WebKit source code, in Source/JavaScriptCore/inspector/protocol/.

There is good documentation for the closely related API from Chrome DevTools, to be found here.

API

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).

Selenium "atoms"

The remote debugger uses the standard Selenium Atoms to interact with web pages. These need to be manually updated when necessary. To do so, simply update the branch in the gulpfile, by modifying the SELENIUM_BRANCH constant at the top of the file. Then run npm run build:atoms, test and create a pull request with the resulting changed atoms directory.

One caveat is that there are some changes that are needed for Appium, that are not yet in the Selenium codebase. See the atoms notes for details.

Test

npm test
npm e2e-test

appium-remote-debugger's People

Contributors

imurchie avatar mykola-mokhnach avatar greenkeeper[bot] avatar kazucocoa avatar jonahss avatar dependabot[bot] avatar umutuzgur avatar semantic-release-bot avatar jlipps avatar dpgraham avatar dependabot-preview[bot] avatar yaphatak avatar christian-bromann avatar anorimaki avatar erustusagutu avatar ssynix avatar thomasfettsauce avatar yfangsl avatar rkavalap avatar li-zhixin avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.