All Projects → openatx → Wdaproxy

openatx / Wdaproxy

Licence: mit
WebDriverAgent Proxy

Projects that are alternatives of or similar to Wdaproxy

Kubefwd
Bulk port forwarding Kubernetes services for local development.
Stars: ✭ 2,713 (+2435.51%)
Mutual labels:  proxy, brew
Freeproxy
免费、高速的 V2Ray 代理和订阅。
Stars: ✭ 104 (-2.8%)
Mutual labels:  proxy
Proxy
C++ TCP Proxy Server
Stars: ✭ 98 (-8.41%)
Mutual labels:  proxy
Swiftplaygroundscli
Easily generate Swift Playgrounds from your command line 👨‍💻
Stars: ✭ 103 (-3.74%)
Mutual labels:  brew
Windtalk
Simplest way to communicate with iFrames and other windows
Stars: ✭ 100 (-6.54%)
Mutual labels:  proxy
Process Proxifier
Using FiddlerCore to add proxy settings to the Windows applications
Stars: ✭ 104 (-2.8%)
Mutual labels:  proxy
Sidedoor
SSH connection daemon for Debian/Raspbian/Ubuntu/etc
Stars: ✭ 97 (-9.35%)
Mutual labels:  proxy
Jcrandomproxy
随机代理
Stars: ✭ 105 (-1.87%)
Mutual labels:  proxy
Forward Proxy
150 LOC Ruby forward proxy using only standard libraries.
Stars: ✭ 105 (-1.87%)
Mutual labels:  proxy
Webdriver.dart
Dart WebDriver client
Stars: ✭ 102 (-4.67%)
Mutual labels:  webdriver
Websocks
A secure proxy based on WebSocket. 一个基于 WebSocket 的代理工具
Stars: ✭ 102 (-4.67%)
Mutual labels:  proxy
Gate
A high performant & paralleled Minecraft proxy server with scalability, flexibility & excellent server version support - ready for the cloud!
Stars: ✭ 102 (-4.67%)
Mutual labels:  proxy
Seleniumwithcucucumber
In this project we will discuss working Selenium with cucumber
Stars: ✭ 104 (-2.8%)
Mutual labels:  webdriver
Bettercap
The Swiss Army knife for 802.11, BLE, IPv4 and IPv6 networks reconnaissance and MITM attacks.
Stars: ✭ 10,735 (+9932.71%)
Mutual labels:  proxy
Automation Arsenal
Curated list of popular Java and Kotlin frameworks, libraries and tools related to software testing, quality assurance and adjacent processes automation.
Stars: ✭ 105 (-1.87%)
Mutual labels:  webdriver
Grawler
Grawler is a tool written in PHP which comes with a web interface that automates the task of using google dorks, scrapes the results, and stores them in a file.
Stars: ✭ 98 (-8.41%)
Mutual labels:  proxy
Videop2proxy
Proxy to enable P2P only cameras to work with standard protocols.
Stars: ✭ 102 (-4.67%)
Mutual labels:  proxy
Rpm Haproxy
HAproxy RPM spec and builds for CentOS 6/7
Stars: ✭ 103 (-3.74%)
Mutual labels:  proxy
Cracker
tunnel over http[s]
Stars: ✭ 107 (+0%)
Mutual labels:  proxy
Proxy pool
python 代理池
Stars: ✭ 105 (-1.87%)
Mutual labels:  proxy

wdaproxy

Powered By: GoReleaser

Make WebDriverAgent more powerful.

Platform

Limited in Mac

Features

  • [x] Launch iproxy when start. Listen on 0.0.0.0 instead of localhost
  • [x] Create http proxy for WDA server
  • [x] add udid into GET /status
  • [x] forward all url starts with /origin/<url> to /<url>
  • [x] Add the missing Index page
  • [x] Support Package management API
  • [x] Support launch WDA
  • [x] iOS device remote control
  • [x] Support Appium Desktop (Beta)

Installl

$ brew install openatx/tap/wdaproxy

Usage

Simple run

$ wdaproxy -p 8100 -u $UDID

Run with WDA

$ wdaproxy -W ../WebDriverAgent

For more run wdaproxy -h

Strong recommended use python facebook-wda to write tests. But if you have to use appium. Just keep reading.

Simulate appium server

Since WDA implements WebDriver protocol. Even through many API not implemented. But it still works. wdaproxy implemented a few api listed bellow.

  • wdaproxy "/wd/hubs/sessions"
  • wdaproxy "/wd/hubs/session/$sessionId/window/current/size"

Launch wdaproxy with command wdaproxy -p 8100 -u $UDID

Here is sample Python-Appium-Client code.

from appium import webdriver
import time

driver = webdriver.Remote("http://127.0.0.1:8100/wd/hub", {"bundleId": "com.apple.Preferences"})

def wait_element(xpath, timeout=10):
    print("Wait ELEMENT", xpath)
    deadline = time.time() + timeout
    while time.time() <= deadline:
        el = driver.find_element_by_xpath(xpath)
        if el:
            return el
        time.sleep(.2)
    raise RuntimeError("Element for " + xpath + " not found")

wait_element('//XCUIElementTypeCell[@name="蓝牙"]').click()

Not working well code

driver.background_app(3)
driver.implicitly_wait(30)
driver.get_window_rect()
# many a lot.

Extended API

Package install

$ curl -X POST -F [email protected] http://localhost:8100/api/v1/packages
$ curl -X POST -F url="http://somehost.com/some.ipa" http://localhost:8100/api/v1/packages

Package uninstall

$ curl -X DELETE http://localhost:8100/api/v1/packages/${BUNDLE_ID}

Package list (parse from ideviceinstaller -l)

$ curl -X GET http://localhost:8100/api/v1/packages

For developer

First checkout this repository

git clone https://github.com/openatx/wdaproxy $GOPATH/src/github.com/openatx/wdaproxy
cd $GOPATH/src/github.com/openatx/wdaproxy

Update golang vendor

brew install glide
glide up

Package web resources into binary

go generate ./web
go build -tags vfs

LICENSE

Under MIT

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].