wix / Detox

Gray box end-to-end testing and automation framework for mobile apps
https://wix.github.io/Detox/
MIT License
11.21k stars 1.92k forks source link

UIPickerView does not contain desired value #1860

Closed awinograd closed 4 years ago

awinograd commented 4 years ago

Description

A clear and concise description of what the bug is.

Reproduction

Provide the steps necessary to reproduce the issue. If you are seeing a regression, try to provide the last known version where the issue did not reproduce.

  1. I'm rendering the following inside a react-navigation screen.
  return (
    <Picker
       testID="mypicker"
       selectedValue={'c'}
       style={{ width: '100%', height: 200 }}
       onValueChange={console.log}
     >
       <Picker.Item label="a" value="com.wix.detox.a" />
      <Picker.Item label="b" value="com.wix.detox.b" />
       <Picker.Item label="c" value="com.wix.detox.c" />
       <Picker.Item label="d" value="com.wix.detox.d" />
    </Picker>
  );
  1. Run tests
await waitFor(element(by.id('mypicker')))                                                                                                               
   .toBeVisible()                                                                                                                                        
   .withTimeout(10000);                                                                                                                                  
await element(by.id('mypicker')).setColumnToValue(0, 'c');

Expected behavior

Picker item should be chosen

Screenshots

image

Environment (please complete the following information):

Logs

    An action failed. Please refer to the error trace below.
    Exception with Action: {
      "Action Name":  "Set picker column 0 to value 'c'",
      "Element Matcher":  "((!(kindOfClass('RCTScrollView')) && (((kindOfClass('UIPickerView') && (respondsToSelector(accessibilityIdentifier) && accessibilityID('mypicker'))) || (kindOfClass('UIPickerView') && ((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && ancestorThatMatches(((respondsToSelector(accessibilityIdentifier) && accessibilityID('mypicker')) && kindOfClass('RCTDatePicker')))))) && !(kindOfClass('UIAccessibilityTextFieldElement')))) || (((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches(kindOfClass('RCTScrollView'))) && ((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches((((kindOfClass('UIPickerView') && (respondsToSelector(accessibilityIdentifier) && accessibilityID('mypicker'))) || (kindOfClass('UIPickerView') && ((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && ancestorThatMatches(((respondsToSelector(accessibilityIdentifier) && accessibilityID('mypicker')) && kindOfClass('RCTDatePicker')))))) && !(kindOfClass('UIAccessibilityTextFieldElement')))))))"
    }

    Error Trace: [
      {
        "Description":  "UIPickerView does not contain desired value!",
        "Error Domain":  "com.google.earlgrey.ElementInteractionErrorDomain",
        "Error Code":  "2",
        "File Name":  "GREYPickerAction.m",
        "Function Name":  "-[GREYPickerAction perform:error:]",
        "Line":  "120"
      }
    ]

    Hierarchy: <UIWindow:0x7fc455e1da60; AX=N; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |--<UITransitionView:0x7fc455e32150; AX=N; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |--<UIDropShadowView:0x7fc455c4bdc0; AX=N; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |--<UIView:0x7fc455f22320; AX=N; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |--<EXButtonView:0x7fc455f12db0; AX=N; AX.frame={{708, 928}, {48, 48}}; AX.activationPoint={732, 952}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{708, 928}, {48, 48}}; opaque; hidden; alpha=1>
      |  |  |  |  |--<UIButton:0x7fc455c48fd0; AX=N; AX.label='MenuButton'; AX.frame={{708, 928}, {48, 48}}; AX.activationPoint={732, 952}; AX.traits='UIAccessibilityTraitButton'; AX.focused='N'; frame={{0, 0}, {48, 48}}; alpha=1>
      |  |  |  |  |  |--<UIImageView:0x7fc455d15500; AX=N; AX.frame={{720, 941.5}, {24, 21}}; AX.activationPoint={732, 952}; AX.traits='UIAccessibilityTraitImage'; AX.focused='N'; frame={{12, 13.5}, {24, 21}}; alpha=1; UIE=N>
      |  |  |  |--<UIView:0x7fc455e6d6c0; AX=N; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |--<EXAppLoadingView:0x7fc455e7e540; AX=N; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; hidden; alpha=1>
      |  |  |  |  |  |--<EXAppLoadingProgressView:0x7fc455f7c910; AX=N; AX.frame={{0, 988}, {768, 36}}; AX.activationPoint={384, 1006}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 988}, {768, 36}}; opaque; alpha=1>
      |  |  |  |  |  |  |--<UILabel:0x7fc455f7cfa0; AX=Y; AX.label='Downloading JavaScript bundle 100.00%'; AX.frame={{10, 988}, {748, 36}}; AX.activationPoint={384, 1006}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{10, 0}, {748, 36}}; opaque; alpha=1; UIE=N; text='Downloading JavaScript bundle 100.00%'>
      |  |  |  |  |  |--<RCTImageView:0x7fc455fa1960; AX=N; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |--<RCTUIImageViewAnimated:0x7fc455fa28b0; AX=N; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitImage'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; alpha=1; UIE=N>
      |  |  |  |  |  |--<EXAppLoadingCancelView:0x7fc455e7ecf0; AX=N; AX.frame={{0, 448}, {768, 576}}; AX.activationPoint={384, 736}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 448}, {768, 576}}; opaque; hidden; alpha=1>
      |  |  |  |  |  |  |--<UIButton:0x7fc455e89250; AX=N; AX.label='Go back'; AX.frame={{342, 496.5}, {84, 36}}; AX.activationPoint={384, 514.5}; AX.traits='UIAccessibilityTraitButton'; AX.focused='N'; frame={{342, 48.5}, {84, 36}}; alpha=1>
      |  |  |  |  |  |  |  |--<UIButtonLabel:0x7fc455e8c1f0; AX=N; AX.label='Go back'; AX.frame={{356.5, 506}, {55, 17}}; AX.activationPoint={384, 514.5}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{14.5, 9.5}, {55, 17}}; alpha=1; UIE=N; text='Go back'>
      |  |  |  |  |  |  |--<UILabel:0x7fc455e82730; AX=Y; AX.label='This is taking much longer than it should. You might want to check your internet connectivity.'; AX.frame={{235.5, 556.5}, {297, 50.5}}; AX.activationPoint={384, 581.75}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{235.5, 108.5}, {297, 50.5}}; opaque; alpha=1; UIE=N; text='This is taking much longer than it should. You might want to check your internet connectivity.'>
      |  |  |  |  |  |  |--<UILabel:0x7fc455e80ae0; AX=Y; AX.label='Opening project...'; AX.frame={{340.25, 449.5}, {115.5, 17}}; AX.activationPoint={398, 458}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{340.25, 1.5}, {115.5, 17}}; opaque; alpha=1; UIE=N; text='Opening project...'>
      |  |  |  |  |  |  |--<UIActivityIndicatorView:0x7fc455e7f820; AX=N; AX.label='In progress'; AX.value='1'; AX.frame={{312.25, 448}, {20, 20}}; AX.activationPoint={322.25, 458}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{312.25, 0}, {20, 20}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |--<UIImageView:0x7fc455e7fe80; AX=N; AX.frame={{312.25, 448}, {20, 20}}; AX.activationPoint={322.25, 458}; AX.traits='UIAccessibilityTraitImage'; AX.focused='N'; frame={{0, 0}, {20, 20}}; alpha=1; UIE=N>
      |  |  |  |  |  |--<UIView:0x7fc455e7e8f0; AX=N; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |--<ABI36_0_0RCTRootView:0x7fc455e78840; AX=N; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |--<ABI36_0_0RCTRootContentView:0x7fc455c9d2d0; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page Add new patient'; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455dbe2b0; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page Add new patient'; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455ece950; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page Add new patient'; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |--<ABI36_0_0RNCAppearanceProvider:0x7fc455dbd8d0; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page Add new patient'; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455dbd420; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page Add new patient'; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455ca5a20; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page Add new patient'; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455f93380; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page Add new patient'; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455f930e0; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page Add new patient'; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455f92e40; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page Add new patient'; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455fa01f0; AX=N; AX.label='Add new patient'; AX.frame={{0, 0}, {768, 64}}; AX.activationPoint={384, 32}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 64}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455fc3310; AX=N; AX.label='Add new patient'; AX.frame={{0, 0}, {768, 64}}; AX.activationPoint={384, 32}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 64}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455f9fab0; AX=N; AX.label='Add new patient'; AX.frame={{0, 0}, {768, 64}}; AX.activationPoint={384, 32}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 64}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455f9f810; AX=N; AX.label='Add new patient'; AX.frame={{0, 20}, {768, 43.5}}; AX.activationPoint={384, 41.75}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 20}, {768, 43.5}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455f9f570; AX=N; AX.label='Add new patient'; AX.frame={{0, 20}, {768, 43.5}}; AX.activationPoint={384, 41.75}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 43.5}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455f85ab0; AX=N; AX.label='Add new patient'; AX.frame={{0, 20}, {768, 43.5}}; AX.activationPoint={384, 41.75}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 43.5}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTTextView:0x7fc455fd18d0; AX=Y; AX.label='Add new patient'; AX.frame={{318.5, 31}, {131, 21.5}}; AX.activationPoint={384, 41.75}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{318.5, 11}, {131, 21.5}}; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455fa5160; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page'; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455fa4ec0; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page'; AX.frame={{0, 0}, {768, 1024}}; AX.activationPoint={384, 512}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 1024}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455fd7d90; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page'; AX.frame={{0, 64}, {768, 960}}; AX.activationPoint={384, 544}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 64}, {768, 960}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455fd7af0; AX=N; AX.label='a Horizontal scroll bar, 1 page d c b a Horizontal scroll bar, 1 page b a Horizontal scroll bar, 1 page'; AX.frame={{0, 64}, {768, 200}}; AX.activationPoint={384, 164}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 200}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTPicker:0x7fc455ccc8b0; AX=N; AX.id='mypicker'; AX.frame={{0, 64}, {768, 216}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 216}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455ff4240; AX=N; AX.frame={{0, 193}, {768, 0.5}}; AX.activationPoint={384, 193.25}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 129}, {768, 0.5}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455ff40d0; AX=N; AX.frame={{0, 150.5}, {768, 0.5}}; AX.activationPoint={384, 150.75}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 86.5}, {768, 0.5}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455cbbf90; AX=N; AX.frame={{0, 64}, {768, 216}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 216}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIPickerColumnView:0x7fc455fe8c20; AX=N; AX.frame={{0, -37.5}, {768, 291}}; AX.activationPoint={384, 108}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 216}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455ff4eb0; AX=N; AX.frame={{0, 151}, {768, 42}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 87}, {768, 42}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIPickerTableView:0x7fc456909400; AX=N; AX.frame={{0, 26.5}, {768, 291}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, -124.5}, {768, 291}}; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<_UIScrollViewScrollIndicator:0x7fc455ed6b30; AX=N; AX.label='Horizontal scroll bar, 1 page'; AX.value='0%'; AX.frame={{0, 284.5}, {768, 30}}; AX.activationPoint={382.5, 313}; AX.traits='UIAccessibilityTraitAdjustable'; AX.focused='N'; frame={{3, 159.5}, {759, 3}}; opaque; alpha=0>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455ed5db0; AX=N; AX.frame={{3, 311.5}, {759, 3}}; AX.activationPoint={382.5, 313}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {759, 3}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIPickerTableViewWrapperCell:0x7fc455cd4100; AX=N; AX.frame={{0, 152}, {768, 40}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1; text=''>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455dcfcb0; AX=N; AX.frame={{0, 152}, {320, 44}}; AX.activationPoint={160, 174}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {320, 44}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UILabel:0x7fc455dcc160; AX=Y; AX.label='a'; AX.frame={{0, 152}, {768, 40}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1; UIE=N; text='a'>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UITableViewCellContentView:0x7fc455dd24b0; AX=N; AX.frame={{0, 152}, {768, 40}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIPickerTableViewWrapperCell:0x7fc455cd4850; AX=N; AX.frame={{0, 193.28812815850992}, {768, 36.541818305704027}}; AX.activationPoint={384, 211.55903731136192}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 41.28812815850992}, {768, 36.541818305704027}}; opaque; alpha=1; text=''>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455cbcfc0; AX=N; AX.frame={{0, 193.28812815850992}, {320, 40.196000136274421}}; AX.activationPoint={160, 213.38612822664714}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {320, 44}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UILabel:0x7fc455cd4c10; AX=Y; AX.label='b'; AX.frame={{0, 193.28812815850992}, {768, 36.541818305704027}}; AX.activationPoint={384, 211.55903731136192}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1; UIE=N; text='b'>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UITableViewCellContentView:0x7fc455cd5150; AX=N; AX.frame={{0, 193.28812815850992}, {768, 36.541818305704027}}; AX.activationPoint={384, 211.55903731136192}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455ff2520; AX=N; AX.frame={{0, 193}, {768, 87}}; AX.activationPoint={384, 236.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 129}, {768, 87}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIPickerTableView:0x7fc456830800; AX=N; AX.frame={{0, 26.5}, {768, 291}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, -166.5}, {768, 291}}; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<_UIScrollViewScrollIndicator:0x7fc455ed8250; AX=N; AX.label='Horizontal scroll bar, 1 page'; AX.value='0%'; AX.frame={{0, 284.5}, {768, 30}}; AX.activationPoint={382.5, 313}; AX.traits='UIAccessibilityTraitAdjustable'; AX.focused='N'; frame={{3, 159.5}, {759, 3}}; opaque; alpha=0>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455ed7e50; AX=N; AX.frame={{3, 311.5}, {759, 3}}; AX.activationPoint={382.5, 313}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {759, 3}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIPickerTableViewWrapperCell:0x7fc455de86d0; AX=N; AX.frame={{0, 152}, {768, 40}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1; text=''>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455de8f20; AX=N; AX.frame={{0, 152}, {320, 44}}; AX.activationPoint={160, 174}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {320, 44}}; opaque; alpha=0.447>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UILabel:0x7fc455de91b0; AX=Y; AX.label='a'; AX.frame={{0, 152}, {768, 40}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1; UIE=N; text='a'>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UITableViewCellContentView:0x7fc455de8a90; AX=N; AX.frame={{0, 152}, {768, 40}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIPickerTableViewWrapperCell:0x7fc455eee2d0; AX=N; AX.frame={{0.11678701085437476, 193.28165373961846}, {767.76642597829118, 35.504483482261008}}; AX.activationPoint={383.99999999999994, 211.03389548074898}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 41.28812815850992}, {768, 36.541818305704027}}; opaque; alpha=1; text=''>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455eeed80; AX=N; AX.frame={{0.11678701085437476, 193.28165373961849}, {321.14974695943749, 38.985728662679549}}; AX.activationPoint={160.69166049057313, 212.77451807095827}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {320, 44}}; opaque; alpha=0.447>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UILabel:0x7fc455eeeef0; AX=Y; AX.label='b'; AX.frame={{0.11678701085437476, 193.28165373961849}, {767.76642597829118, 35.50448348226098}}; AX.activationPoint={383.99999999999994, 211.03389548074898}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1; UIE=N; text='b'>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UITableViewCellContentView:0x7fc455eee7c0; AX=N; AX.frame={{0.11678701085437476, 193.28165373961849}, {767.76642597829118, 35.50448348226098}}; AX.activationPoint={383.99999999999994, 211.03389548074898}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIPickerTableViewWrapperCell:0x7fc455dee5f0; AX=N; AX.frame={{7.2492404426701977, 229.78351005966229}, {753.50151911465969, 23.621987930026904}}; AX.activationPoint={384.00000000000006, 241.59450402467576}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 78.895350042509634}, {768, 26.765224254354337}}; opaque; alpha=1; text=''>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455deeca0; AX=N; AX.frame={{7.2492404426701977, 229.78351005966229}, {316.12018261710989, 25.902882744978683}}; AX.activationPoint={165.30933175122513, 242.73495143215163}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {320, 44}}; opaque; alpha=0.447>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UILabel:0x7fc455deee10; AX=Y; AX.label='c'; AX.frame={{7.2492404426701977, 229.78351005966229}, {753.50151911465969, 23.621987930026904}}; AX.activationPoint={384.00000000000006, 241.59450402467576}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1; UIE=N; text='c'>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UITableViewCellContentView:0x7fc455ddc5f0; AX=N; AX.frame={{7.2492404426701977, 229.78351005966229}, {753.50151911465969, 23.621987930026904}}; AX.activationPoint={384.00000000000006, 241.59450402467576}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIPickerTableViewWrapperCell:0x7fc455df44c0; AX=N; AX.frame={{19.513625545338886, 253.93257432111412}, {728.97274890932238, 8.1195513406437101}}; AX.activationPoint={384.00000000000006, 257.99234999143596}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 106.31902519368779}, {768, 12.360679774997891}}; opaque; alpha=1; text=''>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455df4f70; AX=N; AX.frame={{19.513625545338886, 253.93257432111412}, {306.30632396850746, 8.8971868409506953}}; AX.activationPoint={172.66678752959263, 258.38116774158948}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {320, 44}}; opaque; alpha=0.447>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UILabel:0x7fc455df5200; AX=Y; AX.label='d'; AX.frame={{19.513625545338886, 253.93257432111412}, {728.97274890932238, 8.1195513406436532}}; AX.activationPoint={384.00000000000006, 257.99234999143596}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1; UIE=N; text='d'>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UITableViewCellContentView:0x7fc455df49b0; AX=N; AX.frame={{19.513625545338886, 253.93257432111412}, {728.97274890932238, 8.1195513406436532}}; AX.activationPoint={384.00000000000006, 257.99234999143596}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455f92850; AX=N; AX.frame={{0, 64}, {768, 87}}; AX.activationPoint={384, 107.5}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 87}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIPickerTableView:0x7fc45696c600; AX=N; AX.frame={{0, 26.5}, {768, 291}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, -37.5}, {768, 291}}; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<_UIScrollViewScrollIndicator:0x7fc455fc5a30; AX=N; AX.label='Horizontal scroll bar, 1 page'; AX.value='0%'; AX.frame={{0, 284.5}, {768, 30}}; AX.activationPoint={382.5, 313}; AX.traits='UIAccessibilityTraitAdjustable'; AX.focused='N'; frame={{3, 159.5}, {759, 3}}; opaque; alpha=0>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455fc5bc0; AX=N; AX.frame={{3, 311.5}, {759, 3}}; AX.activationPoint={382.5, 313}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {759, 3}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIPickerTableViewWrapperCell:0x7fc455fde960; AX=N; AX.frame={{0, 152}, {768, 40}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1; text=''>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIView:0x7fc455fe5540; AX=N; AX.frame={{0, 152}, {320, 44}}; AX.activationPoint={160, 174}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {320, 44}}; opaque; alpha=0.447>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UILabel:0x7fc455fded20; AX=Y; AX.label='a'; AX.frame={{0, 152}, {768, 40}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitStaticText'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1; UIE=N; text='a'>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UITableViewCellContentView:0x7fc455f7f3c0; AX=N; AX.frame={{0, 152}, {768, 40}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitNone'; AX.focused='N'; frame={{0, 0}, {768, 40}}; opaque; alpha=1>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<UIAccessibilityPickerComponent:0x600002d35e50; AX=Y; AX.value='a'; AX.frame={{0, 26.5}, {768, 291}}; AX.activationPoint={384, 172}; AX.traits='UIAccessibilityTraitStaticText,UIAccessibilityTraitAdjustable'; AX.focused='N'>
      |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |  |--<ABI36_0_0RCTView:0x7fc455cda040; AX=N; AX.frame={{0, 0}, {3, 1024}}; AX.activationPoint={1.5, 512}; AX.tr

Device and verbose Detox logs

output.txt

LeoNatan commented 4 years ago

We have a test that passes in our CI. It seems very similar to our code. Please check it out and see why it works there but not for you.

https://github.com/wix/Detox/blob/99a3aea4b470127950f1cdd0f17357743b1f5489/detox/test/src/Screens/PickerViewScreen.js#L28 https://github.com/wix/Detox/blob/99a3aea4b470127950f1cdd0f17357743b1f5489/detox/test/e2e/17.picker.test.js#L7

awinograd commented 4 years ago

Thanks for the response @LeoNatan. I cloned, built and run the e2e tests locally and the picker tests are passing.

I then initialized a new RN app (non expo) and setup a minimal repro. The test still passes as expected.

Not sure what the delta is b/t my minimal Expo reproduction and bare RN reproduction but my guess is it has to be somewhere there though I dont see any difference in the view hierarchy.

Unless you have any further ideas of what I could try to surface the root issue, feel free to consider this closed

LeoNatan commented 4 years ago

Could be something in Expo. Please take it with them if that is the case.