iOS XCUIElementTypeDatePicker > XCUIElementTypePickerWheel setValue with mistake randomly

I want on iOS to set a date in my react-native application.

e2e testing is done with appium 2.0.0-beta.46 and the following driver installed:

- [email protected] [installed (NPM)]
- [email protected] [installed (NPM)]
- [email protected] [installed (NPM)]

For some reason, sometimes calling the setValue method does it without mistake, and sometimes with mistake by choosing the wrong value, a bit randomly, this is the code:

      const datePicker = $('-ios class chain:**/XCUIElementTypeDatePicker')
      const s = datePicker.$('-ios class chain:**/XCUIElementTypePickerWheel')
      console.log(
        'birthDate is',
        birthDate.getDate(),
        RegistrationBirthDate.MONTHS_IOS_NATIVE[birthDate.getMonth()],
        birthDate.getFullYear(),
        '~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~'
      )
      await Promise.all([
        s[0].setValue(birthDate.getDate()),
        s[1].setValue(RegistrationBirthDate.MONTHS_IOS_NATIVE[birthDate.getMonth()]),
        s[2].setValue(birthDate.getFullYear()),
      ])
      console.log(
        'birthDate set to',
        await s[0].getValue(),
        await s[1].getValue(),
        await s[2].getValue()
      )

It logs this :

[0-0] birthDate is 1 Janvier 2005 ~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~~=~
[0-0] 
[0-0] 
[0-0] 2023-01-05T13:26:21.812Z INFO webdriver: COMMAND findElement("-ios class chain", "**/XCUIElementTypeDatePicker")
[0-0] 2023-01-05T13:26:21.813Z INFO webdriver: [POST] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/element
[0-0] 2023-01-05T13:26:21.813Z INFO webdriver: DATA { using: '-ios class chain', value: '**/XCUIElementTypeDatePicker' }
[0-0] 2023-01-05T13:26:21.925Z INFO webdriver: RESULT {
[0-0]   'element-6066-11e4-a52e-4f735466cecf': 'CE040000-0000-0000-CBB6-000000000000',
[0-0]   ELEMENT: 'CE040000-0000-0000-CBB6-000000000000'
[0-0] }
[0-0] 2023-01-05T13:26:21.927Z INFO webdriver: COMMAND findElementsFromElement("CE040000-0000-0000-CBB6-000000000000", "-ios class chain", "**/XCUIElementTypePickerWheel")
[0-0] 2023-01-05T13:26:21.927Z INFO webdriver: [POST] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/element/CE040000-0000-0000-CBB6-000000000000/elements
[0-0] 2023-01-05T13:26:21.927Z INFO webdriver: DATA { using: '-ios class chain', value: '**/XCUIElementTypePickerWheel' }
[0-0] 2023-01-05T13:26:22.060Z INFO webdriver: RESULT iVBORw0KGgoAAAANSUhEUgAABJIAAAnkCAYAAABWQUsDAAAAAXNSR0IArs4c6...
[0-0] 2023-01-05T13:26:22.375Z INFO webdriver: RESULT [
[0-0]   {
[0-0]     'element-6066-11e4-a52e-4f735466cecf': 'E1040000-0000-0000-CBB6-000000000000',
[0-0]     ELEMENT: 'E1040000-0000-0000-CBB6-000000000000'
[0-0]   },
[0-0]   {
[0-0]     'element-6066-11e4-a52e-4f735466cecf': 'E2040000-0000-0000-CBB6-000000000000',
[0-0]     ELEMENT: 'E2040000-0000-0000-CBB6-000000000000'
[0-0]   },
[0-0]   {
[0-0]     'element-6066-11e4-a52e-4f735466cecf': 'E3040000-0000-0000-CBB6-000000000000',
[0-0]     ELEMENT: 'E3040000-0000-0000-CBB6-000000000000'
[0-0]   }
[0-0] ]
[0-0] 2023-01-05T13:26:22.379Z INFO webdriver: COMMAND elementClear("E1040000-0000-0000-CBB6-000000000000")
[0-0] 2023-01-05T13:26:22.380Z INFO webdriver: [POST] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/element/E1040000-0000-0000-CBB6-000000000000/clear
[0-0] 2023-01-05T13:26:22.380Z INFO webdriver: COMMAND elementClear("E2040000-0000-0000-CBB6-000000000000")
[0-0] 2023-01-05T13:26:22.380Z INFO webdriver: [POST] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/element/E2040000-0000-0000-CBB6-000000000000/clear
[0-0] 2023-01-05T13:26:22.380Z INFO webdriver: COMMAND elementClear("E3040000-0000-0000-CBB6-000000000000")
[0-0] 2023-01-05T13:26:22.381Z INFO webdriver: [POST] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/element/E3040000-0000-0000-CBB6-000000000000/clear
[0-0] 2023-01-05T13:26:43.061Z INFO webdriver: COMMAND takeScreenshot()
[0-0] 2023-01-05T13:26:43.061Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/screenshot
[0-0] 2023-01-05T13:26:43.062Z INFO webdriver: COMMAND elementSendKeys("E1040000-0000-0000-CBB6-000000000000", "1")
[0-0] 2023-01-05T13:26:43.062Z INFO webdriver: [POST] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/element/E1040000-0000-0000-CBB6-000000000000/value
[0-0] 2023-01-05T13:26:43.063Z INFO webdriver: DATA { text: '1' }
[0-0] 2023-01-05T13:28:03.710Z INFO webdriver: COMMAND takeScreenshot()
[0-0] 2023-01-05T13:28:03.710Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/screenshot
[0-0] 2023-01-05T13:28:03.712Z INFO webdriver: COMMAND elementSendKeys("E2040000-0000-0000-CBB6-000000000000", "Janvier")
[0-0] 2023-01-05T13:28:03.712Z INFO webdriver: [POST] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/element/E2040000-0000-0000-CBB6-000000000000/value
[0-0] 2023-01-05T13:28:03.712Z INFO webdriver: DATA { text: 'Janvier' }
[0-0] 2023-01-05T13:28:54.384Z INFO webdriver: COMMAND takeScreenshot()
[0-0] 2023-01-05T13:28:54.384Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/screenshot
[0-0] 2023-01-05T13:28:54.385Z INFO webdriver: COMMAND elementSendKeys("E3040000-0000-0000-CBB6-000000000000", "<Screenshot[base64]>")
[0-0] 2023-01-05T13:28:54.385Z INFO webdriver: [POST] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/element/E3040000-0000-0000-CBB6-000000000000/value
[0-0] 2023-01-05T13:28:54.385Z INFO webdriver: DATA { text: '2005' }
[0-0] 2023-01-05T13:28:54.527Z INFO webdriver: RESULT iVBORw0KGgoAAAANSUhEUgAABJIAAAnkCAYAAABWQUsDAAAAAXNSR0IArs4c6...
[0-0] 2023-01-05T13:28:54.757Z INFO webdriver: COMMAND takeScreenshot()
[0-0] 2023-01-05T13:28:54.757Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/screenshot
[0-0] 2023-01-05T13:28:54.911Z INFO webdriver: RESULT iVBORw0KGgoAAAANSUhEUgAABJIAAAnkCAYAAABWQUsDAAAAAXNSR0IArs4c6...
[0-0] 2023-01-05T13:28:55.110Z INFO webdriver: COMMAND takeScreenshot()
[0-0] 2023-01-05T13:28:55.110Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/screenshot
[0-0] 2023-01-05T13:28:55.254Z INFO webdriver: RESULT iVBORw0KGgoAAAANSUhEUgAABJIAAAnkCAYAAABWQUsDAAAAAXNSR0IArs4c6...
[0-0] 2023-01-05T13:28:55.526Z INFO webdriver: COMMAND takeScreenshot()
[0-0] 2023-01-05T13:28:55.526Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/screenshot
[0-0] 
[0-0] 
[0-0] 2023-01-05T13:28:55.527Z INFO webdriver: COMMAND getElementAttribute("E1040000-0000-0000-CBB6-000000000000", "value")
[0-0] 2023-01-05T13:28:55.527Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/element/E1040000-0000-0000-CBB6-000000000000/attribute/value
[0-0] 2023-01-05T13:28:55.699Z INFO webdriver: RESULT iVBORw0KGgoAAAANSUhEUgAABJIAAAnkCAYAAABWQUsDAAAAAXNSR0IArs4c6...
[0-0] 2023-01-05T13:28:55.864Z INFO webdriver: RESULT iVBORw0KGgoAAAANSUhEUgAABJIAAAnkCAYAAABWQUsDAAAAAXNSR0IArs4c6...
[0-0] 2023-01-05T13:28:56.017Z INFO webdriver: RESULT iVBORw0KGgoAAAANSUhEUgAABJIAAAnkCAYAAABWQUsDAAAAAXNSR0IArs4c6...
[0-0] 2023-01-05T13:28:56.065Z INFO webdriver: RESULT 2
[0-0] 2023-01-05T13:28:56.065Z INFO webdriver: COMMAND takeScreenshot()
[0-0] 2023-01-05T13:28:56.066Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/screenshot
[0-0] 2023-01-05T13:28:56.066Z INFO webdriver: COMMAND getElementAttribute("E2040000-0000-0000-CBB6-000000000000", "value")
[0-0] 2023-01-05T13:28:56.066Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/element/E2040000-0000-0000-CBB6-000000000000/attribute/value
[0-0] 2023-01-05T13:28:56.206Z INFO webdriver: RESULT iVBORw0KGgoAAAANSUhEUgAABJIAAAnkCAYAAABWQUsDAAAAAXNSR0IArs4c6...
[0-0] 2023-01-05T13:28:56.273Z INFO webdriver: RESULT Janvier
[0-0] 2023-01-05T13:28:56.273Z INFO webdriver: COMMAND takeScreenshot()
[0-0] 2023-01-05T13:28:56.273Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/screenshot
[0-0] 2023-01-05T13:28:56.274Z INFO webdriver: COMMAND getElementAttribute("E3040000-0000-0000-CBB6-000000000000", "value")
[0-0] 2023-01-05T13:28:56.274Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/element/E3040000-0000-0000-CBB6-000000000000/attribute/value
[0-0] 2023-01-05T13:28:56.467Z INFO webdriver: RESULT iVBORw0KGgoAAAANSUhEUgAABJIAAAnkCAYAAABWQUsDAAAAAXNSR0IArs4c6...
[0-0] 2023-01-05T13:28:56.516Z INFO webdriver: RESULT 2005
[0-0] 2023-01-05T13:28:56.516Z INFO webdriver: COMMAND takeScreenshot()
[0-0] 2023-01-05T13:28:56.516Z INFO webdriver: [GET] http://localhost:4723/session/2f8482bf-2e5a-462f-ba31-faf78e732c7b/screenshot
[0-0] birthDate set to 2 Janvier 2005
[0-0] 

Any clue where this bugs come from and how I can set the date reliably ?