gpt4 book ai didi

ios - 使用 EarlGrey 按下导航栏上的后退按钮

转载 作者:可可西里 更新时间:2023-11-01 06:13:49 24 4
gpt4 key购买 nike

我在尝试编写使用后退按钮的测试时遇到了一些障碍,希望有人可以用这个为我指明正确的方向。

我的 View 非常标准,我有一个 UINavigation Controller 作为我的 Root View Controller ,我将它推到一个点,然后需要返回。

我试图制作一个匹配器来找到导航栏中的后退按钮,但没有取得任何成功。我尝试使用标签、ID 和值,在后退按钮项目上设置可访问性标识符并没有导致匹配,即使它适用于我的其他界面元素。

[self.navigationItem.backBarButtonItem setAccessibilityIdentifier:@"Back"];

在我的测试中,我有以下内容:

// Press the back button

id<GREYMatcher> backMatcher =
grey_allOf(grey_accessibilityID(@"Back"), grey_sufficientlyVisible(), nil);

[[EarlGrey selectElementWithMatcher:backMatcher] performAction:grey_tap()];

我使用断点和 PO 进行更深入的研究,发现后退按钮的 accessibilityLabel 确实设置为 @"Back"但它与以下代码也不匹配。

// Press the back button

id<GREYMatcher> backMatcher =
grey_allOf(grey_accessibilityID(@"Back"), grey_sufficientlyVisible(), nil);

[[EarlGrey selectElementWithMatcher:backMatcher] performAction:grey_tap()];

最佳答案

问题是您需要一个更具体的匹配器来从 UINavigationController 获取 Back 按钮。如果您查看测试失败时被转储的 ui 层次结构,您会注意到不止一个元素具有可访问性标签 Back。因此,您需要像这样使用 grey_accessibilityTrait 匹配器来进一步缩小搜索范围:

id<GREYMatcher> matcherForBackButton =
grey_allOf(grey_accessibilityLabel(@"Back"),
grey_accessibilityTrait(UIAccessibilityTraitButton),
nil);

[[EarlGrey selectElementWithMatcher:matcherForBackButton]
performAction:grey_tap()];

关于ios - 使用 EarlGrey 按下导航栏上的后退按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35929632/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com