我试图在模拟器上的iPhone应用程序自动化期间截取每个屏幕的屏幕截图。除了屏幕截图,我还想在使用xcode截取屏幕截图之前提取该特定视图中的所有字符串。有没有办法做到这一点?目的是将这些屏幕截图和字符串发送给另一个工具进行验证。
这可以使用facebook提供的Web Driver Agent(WDA)来完成。它确实提供了应用程序所需的所有功能。
这里是github repo的链接:
https://github.com/facebook/WebDriverAgent
请看一下。它可能会帮助您实现目标。
如果您使用XCUITest框架进行自动化,则可以使用XCUIScreen.main.screenshot()
获取当前状态的屏幕截图。
要获取当前屏幕上的所有文本,您可以使用XCUIApplication().descendants(matching: .textField)
或.buttons
或.any
或您希望在屏幕上显示的任何内容,并从元素中提取文本
let descendants = XCUIApplication().descendants(matching: .textField)
foreach descendant in descendants { descendant.label /*do something*/ }
您需要在视图元素上设置辅助功能标识符才能使其生效。