Question: I am trying to click on the Allow button using Detox.

[![enter image description here](https://i.stack.imgur.com/cx8iT.png)](https://i.stack.imgur.com/cx8iT.png)

I have tried the following:

[Detox: iOS Simulator how to confirm alert message](https://stackoverflow.com/questions/47522081/detox-ios-simulator-how-to-confirm-alert-message)

I have also tried targeting the "Allow" button by `element(by.label('Allow')).tap()` and also `by.text`

I do not want to set location permissions upon app launch. I would like to simulate a user allowing and not allowing location permissions.

Answer: 
In your `init.js` file you can allow the permissions:

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

```

Permissions:

```
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

```

You can check the documentation here: <https://github.com/wix/detox/blob/master/detox/test/e2e/13.permissions.test.js>
To "Allow" I have used this with success:

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

```

And for "Don't Allow", this should work:

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

```