• 绝对是精华,学习了!

  • #6 楼 @lihuazhang :多谢提醒,已修改

  • @chenhengjie123 ,非常感谢分享,对我们这些初学的同学帮助很大!

  • @among29 ,暂时还没怎么用过 pageSource ,后面会注意一下。

  • @seveniruby ,很赞同你的说法,稳定性确实要排在第一位的。我们这边之所以对速度比较关注是因为我们这边的测试环境需要:

    1. 我们这边主要做回归测试,代码和测试用例是分离的,也就是对 appium 进行二次分装,分装结束后直接用行为和数据驱动。这样需要代码具有通用性,缺少了直接写脚本的灵活性,导致速度更慢。
    2. 测试平台要求实现录制测试过程,方便业务错误分析,其实是没多大必要的,错误截图就够了,但是领导要花样我们也是没办法的,目前实现了一个步骤截一张图,测试结束后转换成 gif 动画上传服务器,这个截图也是很耗时间。
    3. 测试的是手机银行软件,业务逻辑比较多,后期案例有几百个,且变更测试频繁。优化前一个转账要 12 分钟,目前 5 分钟左右。
  • @link1220 ,那个人就是我,呵呵!

  • 哈哈,大牛们的生活确实不同,学习 了!

  • Appium 学习 总结 (C#) at 2015年09月13日

    @darker50
    1.上面是 C# 的代码,java 参考如下链接:http://blog.csdn.net/aerchi/article/details/8055913
    2.userName 是 resourceId 的值

  • 具体原因你可以咨询一下开发,我也不是太清楚。
    你有尝试过用 keyEvent() 去输入密码吗?实在不行就点击对应键盘的坐标输入。

  • Text remains after clearing, but it appears to be hint text. //文本清除后有残留,但是显示的是隐藏文本
    Text not cleared. Assuming remainder is hint text. //文本未被清除,假定其确实为隐藏文本

    1. 根据 log 信息,两种文本框在点击后处理方式是不一样的,下面的缺少那两行,原因应该是 appium 检测到 “文本已经被清除了” 而不是向上面用隐藏的方式清除。我推测问题是出在你输入后,虽然发送了 sendKey(),但是文本框未检测到你有输入,所以当输入结束后,提示信息又被显示出来了。 2.两个文本在手动操作时,点击文本框后,弹出来的键盘是否是相同的?输入密码的键盘是否是开发人员自己开发的。如果是内部开发的键盘,就需要你去点击键盘去输入了,而不能用 sendKey() 命令。
  • get_attribute 是获取某个属性的值,这里获取的应该是编辑框中的文本内容。刚明白你的意思,我之前也碰到过类似情况,我在 sendkeys() 之前先做个 Click() 操作点击一下文本框,就解决了。sendkeys 在输入之前自己会先 Clear 一下,所以 Clear 其实也不用加

  • Andoid 有 adb shell 命令输入文本的,可以尝试特殊输入替代 sendKeys():
    上面清除后,在 CMD 窗口先手动输入 “adb shell input text "pwdtext2" ;如果可以你不妨封装一个 用这种方式封装一下