如何使用 XCTest 打开 Safari
Posted
技术标签:
【中文标题】如何使用 XCTest 打开 Safari【英文标题】:How to open safari using XCTest 【发布时间】:2016-11-28 12:30:21 【问题描述】:我是 XCTest 的新手,我正在尝试使用 XCTest 在我的 iPhone 中使用 safari 应用程序,但无法执行任何操作,因此有办法实现这一目标
目前已尝试的代码:
[[UIApplication sharedApplication] openURL:[NSURL URLWithString:@"www.ggogle.com"]];
【问题讨论】:
【参考方案1】:无法使用 XCTest 打开 safari。我尝试了以下方法,它给出了错误“未加载应用程序可访问性”。
在 Brigding-Header.h 中声明 XCUIApplication 私有方法接口:
@interface XCUIApplication (Private)
- (id)initPrivateWithPath:(NSString *)path bundleID:(NSString *)bundleID;
- (void)resolve;
@end
然后尝试打开safari:
let safari : XCUIApplication = XCUIApplication(privateWithPath: nil, bundleID: "com.apple.safari")
safari.launch();
【讨论】:
【参考方案2】:NSURL *url = [NSURL URLWithString:@"http://www.***.com"];
if (![[UIApplication sharedApplication] openURL:url])
NSLog(@"%@%@",@"Failed to open url:",[url description]);
【讨论】:
试过了但没用 :(..,说是打开网址失败 以上代码仅适用于 XCTest 吗?还是我缺少一些东西,比如导入一些库或方法类型 youtube.com/watch?v=amSApTmxqrc .打开这个对你有帮助:) 我看过这个视频,它非常基础,没有显示任何关于打开 safari 应用程序和使用 XCTest 传递任何 url 的内容:( 您的网址正确吗?因为这段代码在我的项目中工作。【参考方案3】:编写一个模拟[UIApplication openURL:]
的单元测试,并验证您传递给它的URL 是否正确。或者,如果您想要另一个方向,请编写一个单元测试,它将按调用顺序调用 UIApplicationDelegate
方法,模拟您的应用程序打开链接。这是您可以使用 XCUnit 所能达到的程度。并手动测试。
或试试这个
NSString *filePath = [[[NSBundle bundleForClass:[self class]] resourcePath] stringByAppendingPathComponent:@"YourFileName.json"];
XCTAssertNotNil(filePath);
【讨论】:
以上是关于如何使用 XCTest 打开 Safari的主要内容,如果未能解决你的问题,请参考以下文章
如何使用 XCTest 框架测试基于 REST 的原生 iOS 应用程序?
如何在 Objective C 中使用 Safari 打开表单?