【发布时间】:2018-12-21 02:55:42
【问题描述】:
我正在使用 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')) 单击按钮,但如果我想使用 @ 链接来选择按钮元素987654324@ 方法我收到错误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>
自定义按钮组件是另一个带有一些文本和按钮元素的视图。
我唯一的猜测是,由于我使用的是嵌套视图/自定义组件,因此 Matcher 逻辑可能无法处理。有任何想法吗?也许我不完全理解文档。
【问题讨论】:
-
我尝试让
.and()工作,但我做不到。虽然这两个元素在单独完成时都是可见的。我能够让它与.withDescendent()一起工作。这可能适合您的需求? -
感谢@Andrew 的帮助,原来我认为
and()方法是用于链接元素,但在查看文档后,看起来你是对的。我正在寻找更像withDescendant()或withAncestor()
标签: javascript react-native e2e-testing detox