简介
绕过Appium Server
- 稳定的测试环境。PS: Appium间接调用WDA经常失败,xcode启动WDA非常稳定。
- 更快的运行速度。
需要真机。
Xcode启动WDA
自带的Inspector http://localhost:8100/inspector
命令行启动, 要连接着手机
UDID=$(idevice_id -l)
xcodebuild -project WebDriverAgent.xcodeproj -scheme WebDriverAgentRunner -destination "id=$UDID" test-without-building
安装 wdaproxy
停止掉iproxy
PS: 安装不了就开代理 代理 export HTTP_PROXY=http://112.126.81.122:6$(date +%m%d)
brew install openatx/tap/wdaproxy
# upgrade with
# brew upgrade wdaproxy
wdaproxy -p 8100
浏览器访问 localhost:8100 会看到如下的界面
使用Appium Desktop
Appium -> New Session Window
没有Mac的可以等旁边人做完之后,Host部分填旁边人的主机IP
ideviceinstaller -l
获取bundleId
参考
from appium import webdriver
import time
import selenium
driver = webdriver.Remote("http://127.0.0.1:8100/wd/hub", {"bundleId": "com.example.apple-samplecode.UICatalog"})
def wait_element(xpath, timeout = 30):
deadline = time.time() + timeout
while time.time() < deadline:
try:
el = driver.find_element_by_xpath(xpath)
return el
except selenium.common.exceptions.NoSuchElementException:
time.sleep(.2)
raise RuntimeError("NoSuchElementException in wait_element")
wait_element('//*[@name="Action Sheets"]').click()
wait_element('//*[@name="Okay / Cancel"]' # TODO
扩展
修改WDA的截图函数,提高截图速度。