我做自动化React本地测试与排毒,它有下一个屏幕序列A -> B -> C,我希望回到屏幕B <- C.有解决方案吗?
A -> B -> C
B <- C.
ncgqoxb01#
您可以继续创建一个实用程序
export const pressBack = async () => { if (device.getPlatform() === 'android') { await device.pressBack(); } else { await element(by.traits(['button'])) .atIndex(0) .tap(); } };
字符串
v64noz0r2#
返回按钮上有一个testId,所以你可以这样做:
await element(by.id("header-back")).tap();
mhd8tkvw3#
有时
字符串不起作用,
await element(by.traits(['button'])) .atIndex(0) .tap();
型选择另一个按钮。在这种情况下,您可以尝试在ios上使用向右滑动,假设它是堆栈导航器。使用外部容器视图
await element(by.id('containerView')).swipe('right', 'fast', 0.1);
型
eqqqjvef4#
解决方案是使用traits按钮,如下所示:wait(by.traits(“button”])).atIndex(0).tap();
djp7away5#
如果您使用的是react-native-navigation,您可以用途:
react-native-navigation
const backButton = () => { if (device.getPlatform() === 'ios') { return element(by.type('_UIBackButtonContainerView')); } else { return element(by.label('Navigate Up')); } }; ... await backButton().tap();
字符串对于[[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)和[[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)中的iOS,您可以用途:
[[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
return element(by.id('pop'));
mrphzbgm6#
另一种可行的方法是
await element(by.id('header-back')).atIndex(0).tap()
字符串这使用了内置的testID,即react-navigation v5附带的默认返回按钮。您可能需要修改atIndex()编号,因为对我来说,它似乎匹配2个返回按钮,但第一个是我正在寻找的按钮。
6条答案
按热度按时间ncgqoxb01#
您可以继续创建一个实用程序
字符串
v64noz0r2#
返回按钮上有一个testId,所以你可以这样做:
字符串
mhd8tkvw3#
有时
字符串
不起作用,
型
选择另一个按钮。在这种情况下,您可以尝试在ios上使用向右滑动,假设它是堆栈导航器。使用外部容器视图
型
eqqqjvef4#
解决方案是使用traits按钮,如下所示:
wait(by.traits(“button”])).atIndex(0).tap();
djp7away5#
如果您使用的是
react-native-navigation
,您可以用途:字符串
对于
[[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
和[[email protected]](https://stackoverflow.com/cdn-cgi/l/email-protection)
中的iOS,您可以用途:型
mrphzbgm6#
另一种可行的方法是
字符串
这使用了内置的testID,即react-navigation v5附带的默认返回按钮。您可能需要修改atIndex()编号,因为对我来说,它似乎匹配2个返回按钮,但第一个是我正在寻找的按钮。