使用自定义元素选择器进行e2e排毒测试(日历列表)

时间:2019-07-02 04:58:19

标签: react-native detox

我正在测试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."
    }

0 个答案:

没有答案