我正在使用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逻辑无法处理该问题。有任何想法吗?也许我不完全理解文档。
答案 0 :(得分:1)
正如@Andrew在他的评论中指出的那样,我的问题是无效的,因为我误解了文档。如果要基于与其他元素的关系进行匹配,请使用std::cout.write(begin, end - begin);
或withDescendant()
而不是尝试与withAncestor()
进行链接。