Skip to content

Instantly share code, notes, and snippets.

View jlipps's full-sized avatar

Jonathan Lipps jlipps

View GitHub Profile
@jlipps
jlipps / appium-2.0-proposal.md
Last active March 1, 2021 08:07
Appium 2.0 Proposal

Appium 2.0

As described in the Appium 2.0 Epic, Appium needs to evolve from being a server which bundles many drivers to one which by default doesn't bundle any drivers, and instead provides an interface for retrieving and using drivers. Essentially, "Appium" will become:

  • A set of spec extensions to the WebDriver W3C protocol (eventually upstreaming those extensions to the official protocol)
  • A set of code libraries (like BaseDriver or jsonwp-proxy that make it easy to write Appium drivers)
  • A driver runner (this is what the main Appium package currently does); the difference is that drivers will not come bundled with the runner by default
  • A plugin interface based around command-level hooks
  • An API and CLI interface for retrieving and managing different versions of Appium-compatible drivers and plugins

Keybase proof

I hereby claim:

  • I am jlipps on github.
  • I am jlipps (https://keybase.io/jlipps) on keybase.
  • I have a public key ASA5enU7HxGauG4EsLazqFp6THAD-Uts_EWqs9QILVU7IQo

To claim this, I am signing this object:

@jlipps
jlipps / how_to_reset_appium_master.md
Created February 23, 2016 19:55
How to reset Appium master

We recently swapped Appium branches so that the old 1.5 branch is now master. This is great! Unless you already have a local copy of Appium master checked out and want to do a git pull. Unfortunately since we have reset master this is no longer possible. Here's how you do it.

  1. Ensure you have no local changes or commits you want to save. (If you do, get them in a branch).
  2. Figure out what your Appium remote branch is called. For me it is upstream, for you it might be origin. Below, I will call this <remote> and you should replace it with the reality for your own local checkout.
  3. git checkout master
  4. git reset --hard fbbb126 -- this will get you to a place in the git history prior to the divergence
  5. git pull <remote> master -- this will get all the new code
  6. You might also need to rm -rf submodules/ in order to have a clean checkout, since we no longer track submodules in the Appium git repo.

That's it! Happy hacking.

npm info it worked if it ends with ok
npm verb cli [ '/usr/local/bin/node',
npm verb cli '/usr/local/bin/npm',
npm verb cli 'install',
npm verb cli '-g',
npm verb cli '--verbose',
npm verb cli 'appium' ]
npm info using npm@1.3.8
npm info using node@v0.11.7
npm verb cache add [ 'appium', null ]
foobar!
"use strict";
var driverBlock = require('../../helpers/driverblock_harmony.js')
, describe = driverBlock.describeForApp('UICatalog')
, it = driverBlock.it
, should = require('should');
describe('basic', function(h) {
it('should confirm element is not visible', function*() {
/*global it:true */
"use strict";
var describeWd = require("../../helpers/driverblock.js").describeForApp('UICatalog')
, should = require('should');
describeWd('basic', function(h) {
it('should confirm element is not visible', function(done) {
h.driver.elementsByTagName('tableCell', function(err, els) {
Day 1: Spec Planning
Introductions :)
jlipps: works at Sauce and Appium
santi: works at Sauce. Will be architecting the backend of Sauce to support this spec.
dburns: works at Mozilla. Works on Marionette (webdriver with extras for Mozilla)
freynaud: ebay. iosdriver
je: works at facebook. ramping up on iosdriver work at facebook
dominik: ebay. creator of selendroid.
@jlipps
jlipps / HostInfo.js
Last active December 10, 2015 21:50 — forked from freynaud/HostInfo.js
/*
* Copyright 2012 ios-driver committers.
*
* Licensed under the Apache License, Version 2.0 (the "License"); you may not use this file except
* in compliance with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software distributed under the License
* is distributed on an "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express
@jlipps
jlipps / everything.js
Last active December 10, 2015 21:48
initialize everything!
function initializeEverything(cb) {
host_info.create(function(err, h) {
other_module.create(function(err, m) {
yet_another_module.create(function(err, y) {
cb(err, h, m, y);
});
});
});
}