我正在使用Xcode7/iOS 9中引入的XCUIApplication,XCUIElement和XCUIElementQuery为我的应用程序编写UI测试用例.
我遇到了路障.测试用例中的一个屏幕需要iOS的位置服务.正如预期的那样,系统会提示用户允许使用名为" Allow “App name” to access your location while you use the app?
with Allow
&Don't Allow
buttons"的警报来使用位置服务.
问题是或许似乎由于警报由OS本身呈现,因此它不存在于Application的元素子树中.
我记录了以下内容:
print("XYZ:\(app.alerts.count)")//0
var existence = app.staticTexts["Allow “App Name” to access your location while you use the app?"].exists
print("XYZ:\(existence)")//false
existence = app.buttons["Allow"].exists
print("XYZ:\(existence)") //false
Run Code Online (Sandbox Code Playgroud)
甚至UI录制生成类似的代码:
XCUIApplication().alerts["Allow “App Name” to access your location while you use the app?"].collectionViews.buttons["Allow"].tap()
Run Code Online (Sandbox Code Playgroud)
我还没有找到任何可以让我解决这个问题的API.例如:
那我该怎么办呢?有没有办法配置测试目标,以便不需要位置服务授权.
我正在使用UITableView显示用户可以过滤的一些数据.如果选择某个(完全"合法")组合,则过滤掉所有数据(隐藏).我想显示一些文字,说明没有找到结果,请修改您的过滤器.
发生这种情况时是否有任何触发我可以挂钩?
或者我是否必须手动检查空数据集并创建自定义视图以显示我的文本?(我想创建一个空白单元格并使用该页脚?希望有更优雅的东西...)
我发现了一个类似的问题,但解决方案不是我想要的:在UITableViewController中处理空的UITableView
此外,我有一个Android编程背景并经常使用这个功能,如果Apple没有这样做,我会感到惊讶!
我正在构建一个混合iOS应用程序WKWebView
.当用户点击链接时,请求被劫持,并且在导航堆栈上推送新的视图控制器.新控制器创建一个新的WKWebView
并加载现有请求.这使应用程序"感觉"原生,但在网络上呈现内容.
通过使用Safari调试工具,我注意到Web视图之间没有缓存任何资产.但是,如果我在现有Web视图中重新请求某些内容,则所有JavaScripts和CSS都会标记为"缓存".
那么,是否可以在WKWebView
实例之间共享缓存?他们已经共享相同WKProcessPool
的共享cookie.
大多数(我所见过的)核心数据教程使用以下带有@"MyEntityClass"
硬编码的代码片段:
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:@"MyEntityClass"];
Run Code Online (Sandbox Code Playgroud)
NSStringFromClass()
用作实体名称是否安全?
NSFetchRequest *request = [[NSFetchRequest alloc] initWithEntityName:NSStringFromClass([MyEntityClass class])];
Run Code Online (Sandbox Code Playgroud)
这种接缝在处理重构等方面更容易处理.特别是因为我正在使用Xcode创建我的NSManagedObject
子类.我问,因为我以前从未见过这个,所以也许我错过了一些东西.
所以我下载了XCode 7的测试版并且我已经创建了一些UI测试,但是我找不到在测试期间如何截取我的app/UI截图的功能.
有人可以帮忙吗?
如何在我的语言文件中添加换行符以供使用MFMailComposeViewController
?在\n
我doesent工作.使用返回键上的正常klick中断具有相同的结果,没有换行符!
我的档案:
"Body_eMail"= "Hello, here is some text.\n\nLorem ipsum alsu.\n\nAnd some text, more...";
Run Code Online (Sandbox Code Playgroud)
我想要:
你好,
这是一些文字.Lorem ipsum alsu.
还有一些文字,更多......
本作的UILabel工作正常(如@lawicko下文提到),但加入到时MFMailComposeViewController
的\n
字符内置显示,如下图所示:
Hello, here is some text.\n\nLorem ipsum alsu.\n\nAnd some text, more...
什么是正确的方法?
xcode line-breaks localizable.strings ios mfmailcomposeviewcontroller
希望这有助于其他人
尝试使用Cedar BDD编译iOS项目时,在命名空间"std"错误消息中没有名为"shared_ptr"的类型时失败.这显然是一个C++错误,但无法理解为什么C++库Xcode正在使用didn; t已经定义了shared_ptr类型,直到我发现目标的构建设置提供了两个库可供选择
我正在看WWDC 2015会议104"Xcode中的新功能",并且在Xcode 7中我可以记录接口单元测试以自动点击按钮,输入文本等.
我有一个包含UITests的新项目,但我如何开始记录UITests的界面交互?
以下是测试中包含的片段:
- (void)setUp {
[super setUp];
// Put setup code here. This method is called before the invocation of each test method in the class.
// In UI tests it is usually best to stop immediately when a failure occurs.
self.continueAfterFailure = NO;
// UI tests must launch the application that they test. Doing this in setup will make sure it happens for each test method.
[[[XCUIApplication alloc] init] launch];
}
Run Code Online (Sandbox Code Playgroud) ios ×5
xcode ×4
ios9 ×2
xctest ×2
bdd ×1
cedar-bdd ×1
core-data ×1
earlgrey ×1
line-breaks ×1
mfmailcomposeviewcontroller ×1
nsstring ×1
objective-c ×1
shared-ptr ×1
testing ×1
uitableview ×1
wkwebview ×1
xcode7 ×1
xcode7-beta4 ×1