appium 测试的时候,有个上传图片功能,一个是选择相册里的图片,一个是拍照,我用 driver.sendKeyEvent(27),这个方法后,相机的那个拍照功能实现了,但是到图片保存进,没办法进行了,请问有什么好办法吗
感觉这种功能手工就好,花费代码上得不偿失。
我也碰到了这个问题,因为测试的 app 调用系统相机拍照功能,自动化的时候考虑多款手机跑的时候脚本正常运行:
driver.sendKeyEvent(27) 先拍照;
driver.sendKeyEvent(66) 照片保存按钮界面,使用 66 系统回车键,这里可能一次不生效,脚本判断一下
我也是使用 7 楼的方法暂时先解决了,虽然是下下策,但实在不想卡在这个步骤!往后应该能找到更好的方法。
你好,我也遇到和你一样的问题,麻烦能告诉我怎么解决吗?
def test_gestureUnlock(self):
#time.sleep(5)
el1 = self.driver.find_element_by_xpath("//UIAApplication[1]/UIAWindow[1]/UIAButton[10]")
print el1
time.sleep(2)
el2 = self.driver.find_element_by_xpath("//UIAApplication[1]/UIAWindow[1]/UIAButton[13]")
print el2
time.sleep(2)
el3 = self.driver.find_element_by_xpath("//UIAApplication[1]/UIAWindow[1]/UIAButton[16]")
print el3
time.sleep(2)
el4 = self.driver.find_element_by_xpath("//UIAApplication[1]/UIAWindow[1]/UIAButton[17]")
print el4
time.sleep(2)
Gesture = TouchAction().press(el1).move_to(el2).move_to(el3).move_to(el4).release()
print Gesture
time.sleep(2)
Gesture.perform()
请问 手势密码这一段有什么问题啊 一直提示如下错误:
File "/Library/Python/2.7/site-packages/appium/webdriver/common/touch_action.py", line 94, in perform
self._driver.execute(Command.TOUCH_ACTION, params)
AttributeError: 'NoneType' object has no attribute 'execute'
知道怎么解决了,到论坛里找到了答案~driver.wait_activity("com.test.camera",2)
如果是研究的话,可以考虑 adb 例如:“adb shell am start -n com.android.camera/.Camera
”, 如果是测试的话, 手工测一下就可以了,要考虑 UI 自动化适合的场景及各种成本。
是否有好的解决方案?我遇到这个问题了
点绝对坐标可以解决 至少不至于卡在这里吧,还有一个办法是查找一个可识别的控件然后在此基础上平移(x,y) 坐标点
我是通过 adb shell input tap 操作相机
是保存后无法返回到自己的应用还是怎么回事?
appium 支持跨 app 啊. 直接按照空间定位去选择就可以了. 不过这样不通用.
最好还是在 android 上开发一个独立的 app 来截获拍照请求并返回对应的图片. 省掉这个过程.
“但是到图片保存进,没办法进行了” 怎么个进行不了呢???
老实说,没看懂问题