2011-04-02 131 views
1

我試圖爲我的iPhone應用程序編寫一些自動化測試時遇到了障礙。看from the documentation我覺得這應該選擇我UIPickerView的第一部分的第一行:用戶界面自動化測試:如何選擇UIAPickerWheel值?

var picker = UIATarget.localTarget().frontMostApp().mainWindow().pickers()[0]; 
var aWheel = picker.wheels()[0]; 
var someVals = aWheel.values(); 

aWheel.selectValue(someVals[0]); 

而是我得到以下錯誤,在儀器記錄:

 Exception raised while running script: - selectValue requires a valid value 

任何想法如何,我可以

  • 在我的UIPickerView單元/組件上設置可預測的值?目前,他們都使用自定義UIViews,而不是標準標籤。

  • 某種方式得到的值從我現有的電池陣列,以遍歷?

我在這裏錯過了什麼?

回答

1

您的代碼看起來正確。你需要添加一些檢查。我認爲你的選擇器是空的,或者你沒有一個有效的處理器。 這是我如何做我的代碼。希望能幫助到你。

target  = UIATarget.localTarget(); 
app   = target.frontMostApp(); 
mainWindow = app.mainWindow(); 


function selectOffice() { 

    UIALogger.logStart("selectOffice"); 

    var validField = false; 

    try { 

     var picker = mainWindow.pickers()[0]; 

     if (picker.isValid()) { 

      var wheel = picker.wheels()[0]; 

      if (wheel.isValid()){ 

       var pickedItems = wheel.values(); 
       var nrOfItems = pickedItems.length; 

       if (nrOfItems > 0) { 
        wheel.selectValue(pickedItems[nrOfItems-1]); 
        validField = true; 
       } 
      } 
     } 
    } 
    catch(error) { 
     UIALogger.logFail(error); 
    } 

    if (validField == true) { 
     UIALogger.logPass("selectOffice"); 
    } else { 
     UIALogger.logFail("Couldnt find a valid control"); 
    } 
    target.delay(1); 
} 
0

SelectValue()似乎並沒有對文本價值的工作。它適用於數字,但。

對於文本值,我只是獲取當前值並點擊,直到找到它。

2

對於我來說,如果輪子中的值爲空,有空格或有一些特殊字符,拾取器輪對象上的selectValue方法不起作用。我最終不得不使用tapWithOptions({ tapOffset: { x: 0.23, y: 0.72 } })來代替。

3

我也有這個問題。

嘗試var newValue = someVals[0].toString();

然後使用newValue在選擇器選擇你的價值:

aWheel.selectValue(newValue);

這爲我工作