2012-03-22 82 views
1

我的工作我的第一个UI自动化脚本,我在下面的deactivateAppForDuration线遭遇了失败:的iOS UI自动化deactivateAppForDuration失败

// Verify password field is shown when app is moved to the foreground 
UIALogger.logMessage("move app to background"); 
target.deactivateAppForDuration(10); 
UIALogger.logMessage("move app to foreground"); 

我从仪器得到的错误是:

Script threw an uncaught JavaScript error: Cannot perform action on invalid element: UIAElementNil from target.frontMostApp().switcherScrollView().buttons()["TimeClock"]

我在测试设备上看到的应用程序已切换到背景并显示iOS应用程序切换器。我可以看到我的应用程序(TimeClock)。它从错误消息和设备屏幕中显示,UI自动化无法选择我的应用程序以转换到前台。

有其他人遇到过这个问题吗?有没有解决办法?

谢谢。

回答

1

我试过你的代码,它在这里工作的很好。如果你在一个新的Instruments文件中运行下面的代码(没有其他),这是否工作?

var target = UIATarget.localTarget(); 
UIALogger.logMessage("move app to background"); 
target.deactivateAppForDuration(1); 
UIALogger.logMessage("move app to foreground"); 

请注意:仪器是总是显示你到底其中的错误发生。有时会在它显示的行的上面或下面几行。 但是:原因错误发生的原因是正确的。我承认你有一个错误在这一行,我猜你是从跳板回来后打电话:

Script threw an uncaught JavaScript error: Cannot perform action on invalid element: UIAElementNil from target.frontMostApp().switcherScrollView().buttons()["TimeClock"] 

确定元素switcherScrollView().buttons()["TimeClock"]在您的应用程序存在,都可以访问?

+2

在这种情况下,'switcherScrollView()'表示设备本身的切换控件,而不是应用程序。 'switcherScrollView()。buttons()[“TimeClock”]'表示应用切换器中他的应用的图标。 – Darc 2012-03-28 22:22:14

1

我有同样的问题。重新启动我的设备为我解决了它。

+0

在这种情况下重新启动模拟器,但也适用于我。 – 2013-07-24 23:26:34