使用 toBeVisible() 期望值和 tap() 动作排毒部分可见按钮的行为不同
Detox partially visible Button behaves differently using toBeVisible() expectation and tap() action
我有一个带有滚动视图和按钮的屏幕,它位于最底部并且部分可见,即按钮的顶部在屏幕中,但标题不可见,除非我向下滚动:
expect(element(by.id(BUTTON_IN_THE_BOTTOM))).toBeVisible()
=> 匹配器失败。
element(by.id(BUTTON_IN_THE_BOTTOM)).tap()
=> 一切正常,点击按钮。
这似乎是一个不一致的地方,我认为框架应该在这些行为中保持一致。这是预期的行为吗?
正在使用排毒 7.3.2
很可能是我们的 iOS 后端框架 Earl Grey 中匹配器之间的不一致。
无论如何,您不滚动是自找麻烦。在屏幕上的位置取决于多个因素,包括设备大小、RN 布局系统以及 OS 布局系统和内容。您不应该真正对像素精度做出假设。通过不滚动可见的按钮,您在不应该出现的地方引入了片状。
使用列表中的 swipe action 到达屏幕底部,以便可以看到该按钮。如上所述,这将防止不稳定的行为,例如在小分辨率设备上进行测试会使您的测试失败。
我有一个带有滚动视图和按钮的屏幕,它位于最底部并且部分可见,即按钮的顶部在屏幕中,但标题不可见,除非我向下滚动:
expect(element(by.id(BUTTON_IN_THE_BOTTOM))).toBeVisible()
=> 匹配器失败。
element(by.id(BUTTON_IN_THE_BOTTOM)).tap()
=> 一切正常,点击按钮。
这似乎是一个不一致的地方,我认为框架应该在这些行为中保持一致。这是预期的行为吗?
正在使用排毒 7.3.2
很可能是我们的 iOS 后端框架 Earl Grey 中匹配器之间的不一致。
无论如何,您不滚动是自找麻烦。在屏幕上的位置取决于多个因素,包括设备大小、RN 布局系统以及 OS 布局系统和内容。您不应该真正对像素精度做出假设。通过不滚动可见的按钮,您在不应该出现的地方引入了片状。
使用列表中的 swipe action 到达屏幕底部,以便可以看到该按钮。如上所述,这将防止不稳定的行为,例如在小分辨率设备上进行测试会使您的测试失败。