gpt4 book ai didi

ios - 使用 UI 测试测试操作扩展

转载 作者:可可西里 更新时间:2023-11-01 03:57:52 24 4
gpt4 key购买 nike

是否可以对 Action Extension 目标执行 UI 测试?我无法创建一个将 Action Extension 作为“要测试的目标”的 UI 测试目标。我正在尝试从 Safari(或照片,尽管 Safari/两者都是首选)中加载 Action 扩展

如果我记录我的互动,我可以得到:

app.icons["Safari"].tap()

然后我可以手动添加:

XCUIDevice.sharedDevice().pressButton(.Home)

在生成代码之前,但它没有按预期工作(模拟器留在主屏幕上)。

我也试过:

UIApplication.sharedApplication().openURL(NSURL(string: "https://google.com")!)

但这也不会打开 Safari。

我什至不确定如果 Action Extension 真的启动了,我是否能够与它自动交互,但希望这是可能的。

最佳答案

因此,可以使用 XCUITest 切换应用程序,但未记录在案。如果你 checkout Facebook's WebDriverAgent ,他们做了一个标题转储并制作了一个从跳板启动的助手。您可以调用:

XCUIApplication* safari = [[XCUIApplication alloc] initWithPrivatePath:nil bundleID:@"com.apple.safari"];

[safari launch];

然后像操作您的应用程序一样与 Safari 交互。但是,我遇到了一个类似的问题,其中 XCUITest 实际上不会启动扩展本身。一旦打开(即您在测试运行时物理点击扩展按钮),测试运行器将完美运行,您可以在与您的应用程序相同的上下文中与您的扩展进行交互。然而,让测试运行器点击以启动扩展没有任何作用。我还有一个 Apple Dev Forum question继续这个话题。

更新:

事实证明,如果您使用该应用程序在按钮位置按下屏幕,该扩展程序将加载并且您可以与之交互!请注意,用于点击坐标的 API 非常不稳定。 x, y 是您创建坐标的事物的框架的乘数。相关示例代码:

// app is your XCUIApplication
// In this case we are tapping in the horizontal middle and at the y coordinate 603 (this is for a 6+ screen size)
XCUICoordinate* coordinateOfRowThatLaunchesYourExtension = [app coordinateWithNormalizedOffset:CGVectorMake(0.5, 603.0 / 736.0)];
[coordinateOfRowThatLaunchesYourExtension tap];

在调用 Apple 的扩展选择器后,这将在操作表中按下您的扩展按钮。无论出于何种原因/XCUITest 中的错误,只需在操作表中按下您的应用程序都不起作用:

[app.sheets.staticTexts[@"MyApp"] tap];

关于ios - 使用 UI 测试测试操作扩展,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34396045/

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