• 截图命令都没有,怎么在项目里调用这个工具进行截屏呀?郁闷。

  • 经我测试,idevicesreenshot 只能支持小于 iOS10 版本的 iphone 设备,大于 iOS10 的不支持,现在很苦恼。

  • 这里指的是通过什么函数、命令行或者是通过命令行调用其它工具的办法。不要说 “HOME 键 + 音量键” 谢谢。

  • 这个问题的解决思路如下:
    1.针对 iOS 无序键盘:用 Macaca 或者 appium-inspector 是可以获取到每个键的信息的。首先,定义一个数据字典 key_num={},把每个键的 xpath 保存到字典里面去。这样 key_num 里面保存的就是 key_num[0]="第一个按键的 xpath 路径",key_num[1]="第二个按键的 xpath 路径"以此类推,记录完,整个键盘的 xpath 路径。然后,通过 xpath 的值就可以取得该元素的 name 值,这个值就是该键的数字,取 name 值方式:对象.get_attribute("name")。然后,定义另一个字典 keys_num={},来保存每个按键对应的 xpath 和对应的数字。比如:第一个键是 “6”,就写 keys_num[6]="第一个键的 xpath",第二个键是 “4”,keys_num[4]="第二个键的 xpath",以此类推,记录完整个键盘的数字和对应的 xpath。这样在输入密码的时候,只要遍历密码,例如:密码是 “666888”,那么密码的第一值是 6,我们就取 keys_num[6] 的值就可以获取到 “数字 6” 的 xpath,在通过 get_element_by_xpath("数字 6 的 xpath") 方式就可以获取到该元素,再用 元素.click() 进行点击,就可以输入该值了。
    2.针对 Android 无序键盘:Android 的密码键盘如果是无序而且不可识别的。那么我们要用到 ocr 这个技术,大家不要紧张,可以去找相关的 ocr 类库,比如用 python 写脚本的人就可以找 python 的 ocr 类库,使用很简单。下面说如何解决密码键盘识别问题。首先,用 adb 截取密码键盘界面,把键盘界面通过 ocr 来识别,获取到键盘数字的顺序,例如:键盘的数字顺序是 “9638527410”,那么我们就可以知道该次弹出的键盘第一排是 “963”,第一个键是 “9”,第二个键是 “6” 以此类推。但是,有的人会问了 “我们既然无法识别键盘,那么如何获取键盘信息呢?”,对,我们只能通过 ocr 获取到键盘数字排序却无法获取到按键信息。那么如何点击呢?接下来,我们打开 andorid 的 “指针位置” 这个功能,计算出每个按键在屏幕的位置(计算方式:按百分比的方式计算,即:该键在屏幕的相对位置)。然后定义数组 key_num_x={},key_num_y={}分别将该键的坐标记录下来,例如第一个键的值是 6 那么就写 key_num_x[6]="第一个键的 x 坐标",key_num_y[6]="第一个键的 y 坐标"。以此类推。记录完所有的按键信息。这样在输入密码的时候,只要遍历密码,例如:密码是 “666888”,那么密码的第一值是 6,我们就取 key_num_x[6] 和 key_num_y[6] 的值,在通过 driver.tap([{x 坐标,y 坐标}]) 这个方法就可以点击了。