UIAutomation API로 많은 테스트를 작성했습니다. 테스트는 Jenkins에 의해 시작되고 Tuneup JS를 사용합니다.UIAutomation iOS : 대부분의 테스트에서 픽커 휠이 유효하지 않습니다.
픽커 휠에 문제가 있습니다. 몇 가지 테스트에서 픽커 휠이 발생하고 잘못된 요소 (UIAElementNil
)로 인해 거의 항상 실패합니다. 필자는 픽업 휠 요소에서 핸들을 얻는 데 테스트 시간을 허용하기 위해 권장 된 target.pushTimeout()
을 사용해 보았습니다. 그리고 운이 없었습니다.
피커 휠로 각 테스트가 가끔 (하지만 드물게) 통과하므로 코드 자체가 문제가되지 않을 것이라고 확신합니다.
자동화 테스트와 피커 휠에서 비슷한 문제가 발생했거나이 문제의 원인 또는 해결책을 찾은 사람이 있습니까?
var picker = app.windows()[2].elements()[0].pickers()[0];
당신은 당신이 isValid()
를 사용하여이 아래 수행 한 검사를 도입 할 수 있지만, 가장 좋은 방법은 경우 :
target.pushTimeout(PICKER_WHEEL_DELAY);
rowTap(window.tableViews()[0], PRICE);
validField1 = false;
validField2 = false;
try {
var picker = app.windows()[2].elements()[0].pickers()[0];
if (picker.isValid()) {
var wheel1 = picker.wheels()[0];
var wheel2 = picker.wheels()[1];
if (wheel1.isValid()){
var pickedItems = wheel1.values();
var nrOfItems = pickedItems.length;
if (nrOfItems > 0) {
wheel1.selectValue(MIN_PRICE_NEW_HOME);
validField1 = true;
}
}
if (wheel2.isValid()){
pickedItems = wheel2.values();
nrOfItems = pickedItems.length;
if (nrOfItems > 0) {
wheel2.selectValue(MAX_PRICE_NEW_HOME);
validField2 = true;
}
}
}
}
catch(error) {
UIALogger.logFail(error);
} finally {
if (validField1 != true || validField2 != true) {
cleanUpAfterPickerFail(app);
throw "failed: Couldnt find a valid picker wheel";
}
}
app.windows()[2].elements()[0].toolbars()[0].buttons()["Done"].tap();
target.popTimeout();
픽커 휠에 문제가 있었지만 액세스 할 곳의 코드 부분과 오류 메시지와 함께 로그 부분을 삽입하십시오. – iOSdev
질문에서 말했듯이, 코드가 작동하고 피커 휠이 유효하지 않을 때 오류가 발생합니다. 잘못된 요소에 대한 작업을 수행 할 수 없습니다 : UIAElementNil. 코드 – tecknut
을 포함하도록 편집합니다. 최근에 XCode 5 및 iOS 7로 업데이트 되었습니까? – iOSdev