Appium 上手 Appium-desktop beta.4 [iOS]

testly · 发布于 2017年07月19日 · 最后由 xiaohengdada 回复于 2017年10月09日 · 3144 次阅读
本帖已被设为精华帖!

听说XCTest提速不错,正好将框架底层升级更新。

1.1.0.beta.4 提交记录:

环境准备:

1,下载Appium 1.1.0-beta.4
2,准备一台ios 9.3以上的设备
3,将设备加入被测应用开发者证书内 (加入之后记得更新证书)
4,xcode 最好升级8.2以上

Appium 1.1.0-beta.4下载地址:

下载 appium:
sudo npm install -g appium

(一) 安装 ios-deploy


sudo npm install -g ios-deploy --unsafe-perm=true

(二) 配置WebAgent:

1,安装appium-xcuitest-driver依赖 进入WebDriverAgent安装目录。运行bootstrap

cd  /usr/local/lib/node_modules/appium/node_modules/appium-xcuitest-driver/WebDriverAgent 

(如果WebDriverAgent 所在路径和此不同,请自行查找)

mkdir -p Resources/WebDriverAgent.bundle
sh ./Scripts/bootstrap.sh

保证 运行sh ./Scripts/bootstrap.sh 无报错就OK了

2,用Xcode打开WebDriverAgent,并且编译
进入WebDriverAgent 文件夹,可用如下方法

首先编译之前你得有 ID账号,并且登录你的Xcode账户。当然如果有开发者账号那么会更好 ,Xcode7之后,苹果放开了真机调试,所以没有开发者账号。也能在真机上跑起来,直接上截图。(以下截图直接复用,哈哈)
编译WebDriverAgentLib

编译WebDriverAgentRunner

可以看看这个帖子 :- https://testerhome.com/topics/6962

(三) 配置Appium:

点击start session 之后就是 appium inspector 而且会自动启动手机上WDA

(四)Capabilities

//启动参数
 public void setup() throws MalformedURLException {
        DesiredCapabilities capabilities = new DesiredCapabilities();
        capabilities.setCapability("platformName","iOS");
        capabilities.setCapability("deviceName", "testly");
        capabilities.setCapability("udid", "ec0e62d55347d95d9b756fc4d2196b9dd2c63290");
        capabilities.setCapability("platformVersion", "10.3");
        capabilities.setCapability(MobileCapabilityType.AUTOMATION_NAME, "XCUITest");
        capabilities.setCapability(MobileCapabilityType.APP, "com.test.test");
        capabilities.setCapability(MobileCapabilityType.UDID, "ec0e62d55347d95d9b756fc4d2196b9dd2c63290");
        driver = new IOSDriver(new URL("http://0.0.0.0:4727/wd/hub"), capabilities);
    }

完成以上步骤即可跑起来啦~

总结:

坑一:

证书问题
因为AppleId只支持三个账号满了 后面一直run不起来,后面只能拿公司的开发者证书,这个问题解决最耗时间。

坑二:

WebDriverAgent的 启动问题
一直想着如何启动 手机上WDA ,其实并不用考虑。通过appium 启动new session 就可以走 localhost:8100即可

如果觉得我的文章对您有用,请随意打赏。您的支持将鼓励我继续创作!
共收到 17 条回复
110

你们用来干嘛?

2113
testly · #2 · 2017年07月20日 作者
110Lihuazhang 回复

自动化底层引擎升级
主要支持10.3

104 seveniruby 将本帖设为了精华贴 07月20日 21:02
50

今天在android上被sendkeys折腾坏了,各种诡异的输入

2113
testly · #5 · 2017年07月21日 作者
50simple 回复

哈哈

11642
50simple 回复

弄好了吗,我也是试了好多种方法,每次输入后,自动删除一部分,光标移到最左边再自动输入,无语

50
11642congbai 回复

弄好了,把键盘锁了才行

609

现在的客户端比以前的好用太多

B21dc5

为什么我终端运行 sh ./Scripts/bootstrap.sh 提示报错fatal: could not read Username for 'https://github.com:' terminal prompts disabled,这个网页好像失效

7d7ec7

@testly 请问怎么向iOS真机发送home键指令?

2113
testly · #11 · 2017年08月01日 作者
7d7ec7zhonglinlins 回复

需要越狱

2113
testly · #12 · 2017年08月01日 作者
B21dc5wangbingfei 回复

sudo

B21dc5
2113testly 回复

启动了超级用户也不行,还是报同样的错

25f875
2113testly 回复

Error Domain=IDETestOperationsObserverErrorDomain Code=6 "Early unexpected exit, operation never finished bootstrapping - no restart will be attempted" UserInfo={NSLocalizedDescription=Early unexpected exit, operation never finished bootstrapping - no restart will be attempted}

Testing failed:
Test target WebDriverAgentRunner encountered an error (Early unexpected exit, operation never finished bootstrapping - no restart will be attempted)

启动WDA报这个错,大佬知道怎么解决吗?

8772

@testly 楼主好,点击start session 之后就是 appium inspector,中间窗口显示Could not obtain source: [object Object],获取不到元素,并且appium有这样一些log
[XCUITest] Executing command 'getPageSource'
[JSONWP Proxy] Proxying [GET /source] to [GET http://localhost:8100/session/7283B585-709D-4646-BE79-B0A2DA38824A/source] with no body
[JSONWP Proxy] Got response with status 200: "{\n \"value\" : \"Cannot get '(null)' source of the current application\",\n \"sessionId\" : \"7283B585-709D-4646-BE79-B0A2DA38824A\",\n \"status\" : 13\n}"
[HTTP] <-- GET /wd/hub/session/ac0b920a-1ab5-4d88-bda9-13234b7b053e/source 500 6606 ms - 224
请问有遇到过这种问题吗

8772

自己回答上面的那个问题,是因为使用的xcode版本太高了,回退到8.3.x就可以了

6853
11642congbai 回复

可能换成系统的输入法就好了

12759
8772lyoung 回复

我也遇到同样的问题,我是上周刚升级到xcode9

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册