appium 测试的时候,有个上传图片功能,一个是选择相册里的图片,一个是拍照,我用 driver.sendKeyEvent(27),这个方法后,相机的那个拍照功能实现了,但是到图片保存进,没办法进行了,请问有什么好办法吗
老实说,没看懂问题
“但是到图片保存进,没办法进行了” 怎么个进行不了呢???
appium 支持跨 app 啊. 直接按照空间定位去选择就可以了. 不过这样不通用.
最好还是在 android 上开发一个独立的 app 来截获拍照请求并返回对应的图片. 省掉这个过程.
是保存后无法返回到自己的应用还是怎么回事?
我是通过 adb shell input tap 操作相机
点绝对坐标可以解决 至少不至于卡在这里吧,还有一个办法是查找一个可识别的控件然后在此基础上平移(x,y) 坐标点
是否有好的解决方案?我遇到这个问题了
如果是研究的话,可以考虑 adb 例如:“adb shell am start -n com.android.camera/.Camera
”, 如果是测试的话, 手工测一下就可以了,要考虑 UI 自动化适合的场景及各种成本。
知道怎么解决了,到论坛里找到了答案~driver.wait_activity("com.test.camera",2)
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'
你好,我也遇到和你一样的问题,麻烦能告诉我怎么解决吗?
我也是使用 7 楼的方法暂时先解决了,虽然是下下策,但实在不想卡在这个步骤!往后应该能找到更好的方法。
我也碰到了这个问题,因为测试的 app 调用系统相机拍照功能,自动化的时候考虑多款手机跑的时候脚本正常运行:
driver.sendKeyEvent(27) 先拍照;
driver.sendKeyEvent(66) 照片保存按钮界面,使用 66 系统回车键,这里可能一次不生效,脚本判断一下
感觉这种功能手工就好,花费代码上得不偿失。