#87 楼 @huanzhijin ,好的,谢谢,我去试下
#82 楼 @huanzhijin ,针对 element 对象的截图方法应该是 screenshot_as_base64 吧?如果用 get_screenshot_as_base64,调用的对象应该是 driver,如果用 element 去调用 get_screenshot_as_base64 方法截图,会:
self._element.get_screenshot_as_base64
AttributeError: 'WebElement' object has no attribute 'get_screenshot_as_base64'
用 self._driver.get_screenshot_as_file(path) 这个方法可以成功截图,不过截图截出来的不是单独控件的截图而是整屏截图,楼主你有能直接成功截出控件的截图的方法吗?
@huanzhijin (huan),请问你用过 screenshot_as_base64 方法吗?
img_b64 = element.screenshot_as_base64()
File "/Users/zhaoxiangyi/Documents/workspace_main/eengoo_appium/Util/AppiumDriverWrap.py", line 248, in screenshot_as_base64
self._element.screenshot_as_base64
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webelement.py", line 385, in screenshot_as_base64
return self._execute(Command.ELEMENT_SCREENSHOT)['value']
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webelement.py", line 457, in _execute
return self._parent.execute(command, params)
File "/Library/Python/2.7/site-packages/selenium/webdriver/remote/webdriver.py", line 233, in execute
self.error_handler.check_response(response)
File "build/bdist.macosx-10.11-intel/egg/appium/webdriver/errorhandler.py", line 29, in check_response
raise wde
WebDriverException: Message: The URL '/wd/hub/session/d80bb7d6-db6a-47ef-9b88-26521ca81572/screenshot/9' did not map to a valid resource
我用了之后返回这个结果,可以指点下我错在哪里了吗?
我看了 driver 里面的 pull 和 push 方法的介绍,方法里似乎也没有提示说 Android only,请问有人在 ios 上用过这个方法吗?
def pull_file(self, path):
"""Retrieves the file at `path`. Returns the file's content encoded as
Base64.
:Args:
- path - the path to the file on the device
"""
data = {
'path': path,
}
return self.execute(Command.PULL_FILE, data)['value']
def pull_folder(self, path):
"""Retrieves a folder at `path`. Returns the folder's contents zipped
and encoded as Base64.
:Args:
- path - the path to the folder on the device
"""
data = {
'path': path,
}
return self.execute(Command.PULL_FOLDER, data)['value']
def push_file(self, path, base64data):
"""Puts the data, encoded as Base64, in the file specified as `path`.
:Args:
- path - the path on the device
- base64data - data, encoded as Base64, to be written to the file
"""
data = {
'path': path,
'data': base64data,
}
self.execute(Command.PUSH_FILE, data)
return self
@vigossjjj ,十分感谢,很好用的方法,挂载沙盒后(非越狱),可以正常从中 pull 文件出来;
请问如果我想 push 图片到 iphone 中,这个可以实现吗?
我试了下,发现 push 之后从应用中查看不到图片,似乎是少了类似于 Android 的 adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///storage/sdcard0 的这种动作?
#5 楼 @sanlengjingvv ,感谢,很有用;
我试了下,碰到了另外一个问题,push 图片进去后,图片在手机上不显示;我尝试在沙盒中删除一张原本的图片,这张图片显示似乎也没什么问题,但是上传图片的时候会提示不存在,所以我推测可能是没有做类似于 remount 的动作导致图片显示不出来;
请问下有类似于 Android 的 adb shell am broadcast -a android.intent.action.MEDIA_SCANNER_SCAN_FILE -d file:///storage/sdcard0,这种刷新 remount 下让图片显示的命令吗?或者有其他的什么动作需要做才能使图片正常显示?
#1 楼 @yzx200712256 ,我用的是 ios 设备碰到这个问题,似乎不可以用 adb 命令呢
@adfghzhang,多谢,解决了,的确是环境变量的问题,我重新试了下在命令行下直接跑,是可以 pass 的,在 eclipse 或 jinkens 下则需要设置下环境变量;
@adfghzhang, 请问楼主找到解决方法了吗?我用的是 1.5.2 版本,用 brew install --HEAD ideviceinstaller 显示已经安装了,仍旧报错,@stella_chmt ,我下载那包 node-idevice 文件,放在指定路径下也没有效果,是因为用.dmg 安装的不能这样用吗?
你好,请问下 python 版的 appium 下有对应的 scrollTo(text) 方法吗?通过 find_element_by_android_uiautomator() 可以实现的吗?
我也用到了这个方法,想用它在 Android 界面下来滑动查找元素后定位元素,但是参数写为 UiScrollable 类之后总是报错:WebDriverException: Message: The requested resource could not be found, or a request was received using an HTTP method that is not supported by the mapped resource.;(UiSelector 类可以正常指定元素)请问下 python 版的 self._driver.find_element_by_android_uiautomator() 可以调用 UiScrollable() 类的方法吗?还是会有其他 scroll 查找控件的处理方法?