我正在测试Detox E2E
测试。但是我对自定义组件有很多问题,因为我的应用程序中几乎所有内容都使用可重用的组件,该组件需要传递给props。但是,最困难的部分是使用DatePicker,因为我正在使用Wix中的一个名为react-native-calendarlist库https://www.npmjs.com/package/react-native-calendar-list的库。
因此,来自排毒文档
setColumnToValue(column, value)
中的https://github.com/wix/Detox/blob/master/docs/APIRef.ActionsOnElement.md#setcolumntovaluecolumn-value--ios-only无效,因为我认为它也是一个自定义元素。
我尝试了<View testID='view'/>
和element(by.id('view')).tapAtPoint({x:100, y:100})
的tapAtPoint()。但是,使用这种解决方案无法预测我要选择哪个日期。
因此,我想使用setColumnByValue()
element(by.type('UIPickerView')).setColumnByValue(1,"6")
。这是其用于<CalendarList />
的元素。这就是所提供的错误。
Failed: [Error: Error: Cannot find UI Element.
Exception with Assertion: {
"Assertion Criteria": "assertWithMatcher:matcherForSufficientlyVisible(>=0.750000)",
"Element Matcher": "((!(kindOfClass('RCTScrollView')) && kindOfClass('UIPickerView')) || (((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches(kindOfClass('RCTScrollView'))) && ((kindOfClass('UIView') || respondsToSelector(accessibilityContainer)) && parentThatMatches(kindOfClass('UIPickerView')))))",
"Recovery Suggestion": "Check if the element exists in the UI hierarchy printed below. If it exists, adjust the matcher so that it accurately matches element."
}