2011-03-24 67 views
4

我試圖自動化我的ipad應用程序的一些測試。uiautomation - 攻牙自定義視圖不起作用

我有一個包含自定義視圖的滾動視圖。

  • 自定義視圖覆蓋drawRect並具有TapRecognizer。
  • 自定義視圖中創建到代碼。我將這個屬性
 

myView.userInteractionEnabled = YES; 
[myView setIsAccessibilityElement:YES]; 
[myView setAccessibilityLabel:@"myView"]; 
 
  • 自定義視圖添加到滾動視圖與
 

[myScrollView addSubview:myView]; 
 

一切工作順利既在設備上和模擬器上:點擊視圖,調用tap識別器回調,自定義視圖可以在tap點繪製某些東西。

我會自動化視圖測試,然後我需要在myView上模擬用戶的水龍頭。

在uiautomation腳本我有這樣的事情:

myView = circuitScrollView.elements()[0];  
myView.logElement(); 
myView.tapWithOptions({x:56, y:576}); 

在位置x = 56和y = 576模擬用戶抽頭。

什麼也沒有發生,似乎myView沒有收到任何敲擊(以防萬一,我在TapRecognizer中播放聲音,但從未聽過)。

我已經tryed這也:

 

myView.tap(); 
 

沒有成功。

有什麼想法?

預先感謝您。

Fab。

+0

嘗試使用circuitScrollView.logElementTree()來確定哪些元素可以接入。我猜你的custum視圖不在該列表中。這不是解決您的問題的方法,但可能是解決問題的一個步驟。 – 2011-03-25 11:01:43

+0

我在某處讀取了啓用了輔助功能的容器會干擾其子元素。 – 2011-06-28 09:26:10

+0

法布里奇奧,你怎麼能夠訪問你的UIScrollView? – Peres 2011-07-19 18:07:20

回答

0

也許myView = circuitScrollView.elements()[「myView」]可能幫助,而不是myView = circuitScrollView.elements()[0]; ?

也許你的自定義視圖是不是在你的circuitScrollView的元素樹,這可能是一些對你有用的第一個元素...

1

。我寫了一個測試,點擊某些x/y座標。如下所示,不要觸摸滾動視圖,而是點擊窗口。

要做到這一點,我寫:

var window = UIATarget.localTarget(); 
    window.tap({x:x_co , y:y_co}); 

x_co和y_co是我的座標。

希望這會有所幫助。

+1

如果你採用UIATarget.localTarget(),你有一個UIATarget,而不是UIAWindow。即使如此,tap方法也不接受參數。你測試了這個腳本嗎? – hariseldon78 2012-06-25 14:19:37