• 我的 iOS 自动化项目是使用 tidevice & wda 实现的。

    刚好也有你这个需求,我刚才是这样实现的:

    1、UI 操作,触发 app 内权限请求操作,
    如点击相册 btn(根据不同 app 申请权限入口)自动弹系统相册权限弹窗,然后通过 UI 操作自动允许。
    点击麦克风 btn 自动弹系统麦克风权限弹窗,然后 UI 操作允许。
    // 其他权限同上操作

    2、这样基本已经 okk 了。

  • from selenium.webdriver.support.ui import WebDriverWait
    from selenium.webdriver.support import expected_conditions as EC
    from appium.webdriver.common.mobileby import MobileBy
    
    def locator(self, loc):
        try:
            return WebDriverWait(self.driver, timeout=10).until(EC.visibility_of_element_located((MobileBy.XPATH, loc)))
        except Exception:  # TimeoutException
            raise
    

    1、如上供参考,还可以再结合你的项目优化,上面好几个写死的值还可以改成参数传递
    2、WebDriverWait 是这样,如果找到了就返回元素,找不到就报 TimeoutException

  • 问题看起来是这样:
    比如进入页面 A,mitmdump 打印出拦截请求 1、2、3
    但再进去页面 A,mitmdump 打印出拦截请求 1、3,其中请求 2 丢了

    解决办法确实是——上透明代理就行。(我这重新配置透明代理环境,现在也不 crash 了☺

  • 帖主您好!使用 mitmproxy 过程中其实会有部分请求丢失,针对这种情况您这边是怎么处理的呢?如果是用透明代理的话,mitmproxy crash 有啥解决经验吗😟

  • 看起来确实是写死路径了,可以带上 $BUILD_NUMBER。
    我的配置是这样,供参考,希望对你有帮助。

    构建
    python3 -m pytest src/testcase/${module} --alluredir report/${BUILD_NUMBER}/testdata
    allure generate report/${BUILD_NUMBER}/testdata -o report/${BUILD_NUMBER}/testreport --clean

    构建后操作

  • 认领:
    done: #28
    ├── advanced-concepts
    │ ├── migrating-to-xcuitest.md
    │ ├── multiple-xcode-versions.md
    │ ├── parallel-tests.md
    │ ├── settings.md
    │ └── wda-custom-server.md

    ├── contributing-to-appium
    │ ├── appium-from-source.md
    │ ├── appium-packages.md
    │ ├── appium-packages.png
    │ ├── dev-tools.md
    │ ├── developers-overview.md
    │ ├── real-device-ci.md
    │ ├── style-guide.md
    │ └── version-branch-release.md

    └── writing-running-appium
    ├── ios
    │ ├── ios-predicate.md
    │ ├── ios-touch-id.md

  • 非本科的情况,如确认十分合适,也可以跟上级提交申请

  • 招,有兴趣欢迎投递简历

  • 有,有兴趣的话欢迎投递简历~

  • 不好意思,web 最近没有名额了,之后有机会咱们再聊~