【问题标题】:How to tap on Allow button on permission pop up如何在权限弹出时点击允许按钮
【发布时间】:2019-10-14 12:12:36
【问题描述】:

我正在尝试使用 Detox 单击“允许”按钮。

我尝试了以下方法:

Detox: iOS Simulator how to confirm alert message

我还尝试通过element(by.label('Allow')).tap()by.text 定位“允许”按钮

我不想在应用启动时设置位置权限。我想模拟一个允许和不允许位置权限的用户。

【问题讨论】:

    标签: javascript react-native detox


    【解决方案1】:

    在您的init.js 文件中,您可以允许权限:

    beforeAll(async () => {
      await detox.init(config, { launchApp: false });
      await device.launchApp({newInstance: true, permissions: {notifications: 'YES'}});
    });
    

    权限:

    calendar=YES|NO
    camera=YES|NO
    contacts=YES|NO
    health=YES|NO
    homekit=YES|NO
    location=always|inuse|never
    medialibrary=YES|NO
    microphone=YES|NO
    motion=YES|NO
    notifications=YES|NO
    photos=YES|NO
    reminders=YES|NO
    siri=YES|NO
    

    您可以在此处查看文档:https://github.com/wix/detox/blob/master/detox/test/e2e/13.permissions.test.js

    【讨论】:

    • 这允许权限,但我团队中的人希望在应用加载时实际点击权限弹出窗口......就像用户会看到并与之交互一样。
    【解决方案2】:

    使用 Detox 无法做到这一点。警报来自不同的进程,而 Detox 严格在应用程序的进程域中运行。

    【讨论】:

      【解决方案3】:

      要“允许”我已经成功使用了这个:

      element(by.type('_UIAlertControllerActionView')).atIndex(1);
      

      对于“不允许”,这应该有效:

      return element(by.type('_UIAlertControllerActionView')).atIndex(0);
      

      【讨论】:

      • 这是用于正常警报,而不是系统警报,例如权限。
      猜你喜欢
      • 2021-09-13
      • 2020-02-26
      • 2018-05-06
      • 2018-12-12
      • 1970-01-01
      • 2016-06-18
      • 1970-01-01
      • 2020-10-22
      • 2011-02-09
      相关资源
      最近更新 更多