xcode UI 自动化脚本在 iPhone 上运行良好,但在 iPad 上失败

Posted

技术标签:

【中文标题】xcode UI 自动化脚本在 iPhone 上运行良好,但在 iPad 上失败【英文标题】:xcode UI Automation script runs fine on iPhone but fails on iPad 【发布时间】:2012-05-22 15:21:43 【问题描述】:

我在 UI 自动化中有脚本,我在 iPhone(真实设备和 SW 模拟器)上运行,它们运行良好。但是当我在 iPad 上运行脚本时,脚本失败了。

示例: target.frontMostApp().mainWindow().tableViews()["空列表"].cells()["标签:"].buttons()[0].tap();

此行在 iPhone 上运行良好,但在 iPad 上失败并出现以下错误(脚本正在尝试 scrollToVisible - :/):

target.frontMostApp().mainWindow().tableViews()["空列表"].cells()["Tags:"].buttons()[0].scrollToVisible() target.frontMostApp().mainWindow().tableViews()["Empty list"].cells()["Tags:"].buttons()[0] 无法被点击 脚本抛出了一个未捕获的 javascript 错误:target.frontMostApp().mainWindow().tableViews()["Empty list"].cells()["Tags:"].buttons()[0] could not be taped

有什么建议吗? 谢谢,

【问题讨论】:

【参考方案1】:

你可以使用函数,比如这个

//function
var _Model=function()

 var model=target.model();
 UIALogger.logMessage(model);
 return model;

//your main case
if(_Model()==='iPhone Simulator') 

 target.frontMostApp().mainWindow().tableViews()["Empty list"].cells()["Tags:"].buttons()[0].tap();

else if(_Model()==='iPad Simulator') 
 
  //here you should write another way to tap Tags: Button
  //you can use record or logtree for getting element ID
 
else 

 UIALogger.logFail("impossible to understand device type");

【讨论】:

以上是关于xcode UI 自动化脚本在 iPhone 上运行良好,但在 iPad 上失败的主要内容,如果未能解决你的问题,请参考以下文章

尝试在具有 IOS 8 和 Xcode 6 UIAutomation 的设备上运行脚本时出错

自动布局:Xcode 6:居中 UI 元素

如何在 jenkins 上运行 ios 模拟器进行 ui 自动化测试

Xcode 6 Auto Layout - 所有设备的 UI 元素之间的恒定水平间距

那些年不上运维自动化 NO ZUO NO DIE 写下的关机脚本

在 Xcode UI 测试期间检查电子邮件?