排毒:使用多个元素匹配器会导致错误

时间:2018-07-12 19:23:23

标签: javascript react-native e2e-testing detox

我正在使用Detox使用以下规范在React Native应用上进行E2E测试:

React Native 0.55.4 Node 9.2.0 Detox 7.3.7

当我在应用程序内的页面上时,可以使用带有Matcher element(by.id('scrollView'))的scrollView进行滚动,也可以单击带有Matcher element(by.text('This Button'))的按钮,但是如果我想使用使用.and()方法进行链接时,出现错误Cannot find UI element

我无法弄清楚为什么我可以独立地与这两个元素进行交互,但是当我将它们链接时,它们将不再起作用。

这是一个React Native代码外观的净化示例:

Route.js

<ScrollView style={styles.container} testID={"scrollView"}>
 <View style={styles.header} />
   this.body()
</ScrollView>

this.body()进行了一些验证,但是render()没什么特别的:

<View>
  <CustomButtonComponent />
</View>

自定义按钮组件是另一个带有一些Text和Button元素的视图。

我唯一的猜测是,由于我使用的是嵌套视图/自定义组件,因此Matcher逻辑无法处理该问题。有任何想法吗?也许我不完全理解文档。

1 个答案:

答案 0 :(得分:1)

正如@Andrew在他的评论中指出的那样,我的问题是无效的,因为我误解了文档。如果要基于与其他元素的关系进行匹配,请使用std::cout.write(begin, end - begin); withDescendant()而不是尝试与withAncestor()进行链接。