我使自动化与排毒进行本机测试,它具有下一个屏幕序列A -> B -> C
,我希望回到屏幕{{1} }
有解决方案吗?
答案 0 :(得分:1)
后退按钮上有一个testId,因此您可以执行以下操作:
await element(by.id("header-back")).tap();
答案 1 :(得分:1)
答案 2 :(得分:1)
如果您使用的是react-native-navigation
,则可以使用:
const backButton = () => {
if (device.getPlatform() === 'ios') {
return element(by.type('_UIBackButtonContainerView'));
} else {
return element(by.label('Navigate Up'));
}
};
...
await backButton().tap();
对于detox@17.3.6
和react-native-navigation@6.10.1
中的iOS,您可以使用:
return element(by.id('pop'));
答案 3 :(得分:0)
解决方案是使用traits按钮,如下所示:
await元素(by.traits(['button']))。atIndex(0).tap();
答案 4 :(得分:0)
有时
await element(by.id("header-back")).tap();
不起作用,并且
await element(by.traits(['button']))
.atIndex(0)
.tap();
选择另一个按钮。在这种情况下,您可以尝试在ios(假设它是堆栈导航器)上向右滑动。使用外部容器视图
await element(by.id('containerView')).swipe('right', 'fast', 0.1);
答案 5 :(得分:0)
另一种可行的方法是
await element(by.id('header-back')).atIndex(0).tap()
这使用了内置的testID,它是react-navigation v5随附的默认后退按钮。您可能需要弄乱atIndex()的数字,因为对我来说,它似乎匹配了2个后退按钮,但第一个是我正在寻找的按钮。