UIAutomation API を使用して一連の大量のテストを作成しました。テストは Jenkins によって起動され、Tuneup JS を使用します。
私の問題はピッカーホイールにあります。いくつかのテストでピッカー ホイールが発生し、ほとんどの場合、無効な要素が原因で失敗しますUIAElementNil
。target.pushTimeout()
ピッカー ホイール要素のハンドルを取得するためのテスト時間を確保するために、推奨される方法を使用してみましたが、うまくいきませんでした。
ピッカー ホイールを使用した各テストは時々 (まれに) パスするので、コード自体が問題ではないと確信しています。
自動化テストで同様の問題が発生し、ピッカー ホイールがこの問題の理由または解決策を見つけた人はいますか?
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();