在设备上测试时出现scrollToVisible错误,UIAutomation

Posted

技术标签:

【中文标题】在设备上测试时出现scrollToVisible错误,UIAutomation【英文标题】:scrollToVisible error while testing on a device, UIAutomation 【发布时间】:2012-11-02 18:16:48 【问题描述】:

对于这行测试代码:view.scrollViews()[0].tapWithOptions(tapOffset:x:0.32, y:0.25)

我收到这个错误

2012-11-02 18:09:23 +0000 None: Script threw an uncaught javascript error: target.frontMostApp().mainWindow().scrollViews()[0] could not be tapped on line 244 of feature.js
2012-11-02 18:09:23 +0000 Debug: target.frontMostApp().mainWindow().scrollViews()[0].tapWithOptions(tapOffset:x:"0.32", y:"0.25")
2012-11-02 18:09:23 +0000 Debug: target.frontMostApp().mainWindow().scrollViews()[0].scrollToVisible()
2012-11-02 18:09:23 +0000 Debug: target.frontMostApp().mainWindow().scrollViews()[0] - scrollToVisible cannot be used on the element because it does not have a scrollable ancestor.
2012-11-02 18:09:23 +0000 Debug: target.frontMostApp().mainWindow().scrollViews()[0] - scrollToVisible cannot be used on the element because it does not have a scrollable ancestor.
2012-11-02 18:09:23 +0000 Debug: target.frontMostApp().mainWindow().scrollViews()[0] could not be tapped

日志元素树看起来像这样

UIATarget "MyiPadname" 0, 0, 1024, 768
elements: 
UIAApplication "myAppName" 0, 0, 1024, 768
elements: 
    UIAWindow "(null)" 0, 0, 1024, 768
    elements: 
        UIAScrollView "(null)" 0, 0, 1024, 768
        elements: 
            UIAImage "(null)" 1017, 761, 7, 7
            UIAImage "(null)" 1017, 761, 7, 7
        
        UIAImage "nav_bar.png" 0, 724, 1024, 44
        UIAButton "button featured" 0, 730, 134, 39
        UIAButton "See the world" 134, 730, 223, 39
        UIAButton "button my favorites" 357, 730, 180, 39
        UIAButton "button settings" 967, 736, 33, 27
    
 

我正在使用 XCode 4.5.1 。谁能帮我解决这个问题。谢谢

【问题讨论】:

仪器有一个f *** bug,这让我发疯了 对不起,我没有看到你试图点击滚动视图,这很奇怪 【参考方案1】:

您是否有机会使用 ios 5.x 模拟器或 iOS 5.x 设备?如果是,那么我看到了同样的问题。我相信 Xcode 4.5.1 不喜欢 ScrollViews。

但是,我找到了解决方法。

我的元素看起来像:

target.frontMostApp().mainWindow().scrollViews()[0].buttons()["Wikipedia"]

因此,我没有直接访问按钮,而是尝试访问按钮的 staticText。

target.frontMostApp().mainWindow().scrollViews()[0].buttons()["Wikipedia"].staticTexts()["Wikipedia"].tap();

我希望这对你有用。

【讨论】:

这仅因为您在按钮内有一个 UIStaticText 才有效。我投了赞成票,因为解决方法的总体思路是正确的:问题似乎只发生在按钮上【参考方案2】:

在滚动视图上执行flickInsideWithOptions 时遇到同样的错误。我相信自动化框架正在尝试滚动到您要首先点击的元素,但如果由于某种原因禁用了滚动,它会失败并出现您提到的错误。

只有一种方法可以解决它 - 自动化框架无法知道我们正在点击滚动视图 - 我们必须避免其特殊版本的点击/滑动/轻弹功能。我们将改为点击mainWindow,例如

var buttonRect = button.rect();
var windowRect = mainWindow.rect();

var xPos = (20 + buttonRect.origin.x) / windowRect.size.width;
var yPos  = (50 + buttonRect.origin.y) / windowRect.size.height;

mainWindow.tapWithOptions(tapOffset:x:xPos, y:yPos);

【讨论】:

以上是关于在设备上测试时出现scrollToVisible错误,UIAutomation的主要内容,如果未能解决你的问题,请参考以下文章

在设备上测试 iPad 应用程序时出现问题

在物理设备上测试时出现 Flutter 部署错误::errSecInternalComponent

React Native - 在真实设备上构建时出现 XCode 错误?

Xcode 单元测试 - 仅为设备构建时出现链接错误

在设备上显示图像时出现问题

在三星 Galaxy S 上发送“向下”键时出现“窗口管理器崩溃”