关于app自动化,权限弹窗处理问题。

appium配置如下:

desired_caps = {
            'platformName': self.platform_name,
            # 'platformVerion': self.device_info['platform_version'],
            'udid': self.device_info["udid"],
            "deviceName": self.device_info["udid"],
            # 'noReset': True,
            'autoGrantPermissions': True,
            'noSign': True,
            'appPackage': self.app_package,
            'appActivity': self.app_activity,
            "unicodeKeyboard": False,
            "reset_keyboard": False,
            'automationName': self.automation_name,
        }

疑问:

  1. 使用【autoGrantPermissions】无法处理弹窗,执行后,权限弹窗还是没有被关闭
  2. 如果使用自动化脚本手动关闭的话是可以,但是各大厂手机的弹窗都不一样,无法做到兼容各种大厂
  3. 如果使用黑名单方式,把各大厂的按钮元素定位都加进去的话,会导致一旦某个case失败会遍历黑名单的list,这样增加了运行的负担

你们应该很快就会讲到这个知识点吧。需要用到智能等待的技巧。如果有异常,进入黑名单处理逻辑,黑名单的处理逻辑,可以用pagesource简化下,不用挨个的find。比如去下page source,搜索下对应的多个控件关键字。

老师,你看下我的疑问:

  1. 使用【autoGrantPermissions】无法处理弹窗,执行后,权限弹窗还是没有被关闭
  2. 如果使用自动化脚本手动关闭的话是可以,但是各大厂手机的弹窗都不一样,无法做到兼容各种大厂
  3. 如果使用黑名单方式,把各大厂的按钮元素定位都加进去的话,会导致一旦某个case失败会遍历黑名单的list,这样增加了运行的负担

@seveniruby

大部分只是修改了下样式,其中的定位符有规律的。使用xpath定位或者accessibilityId定位就可以解决。

使用get page source然后从里面分析字符串就可以解决了,别挨个find