• Appium Python API 中文版 By-HZJ at 2016年09月19日

    #87 楼 @huanzhijin ,好的,谢谢,我去试下

  • Appium Python API 中文版 By-HZJ at 2016年08月30日

    #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) 这个方法可以成功截图,不过截图截出来的不是单独控件的截图而是整屏截图,楼主你有能直接成功截出控件的截图的方法吗?

  • Appium Python API 中文版 By-HZJ at 2016年08月16日

    @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() 可以实现的吗?