appium + nodejs(wd)+ mochaを使用しているときに問題が発生しました。ローディングビュー(blackbox testing &私はアンドロイドアプリの開発者ではありません)私はそれが不平等であるのを待っていたい。その後、nodejs appiumスタンドアロンのコンソール出力でハングアップを開始しますので、要素が見つからない場合、appium nodejs(wd)がハングします
wd.addPromiseChainMethod('waitForElementByIdDisappears', function (id, retries) {
var self = this;
return new Promise(function (resolve, reject) {
(function waitForElementDisappears(retry, context){
if(retry < 0) {
return reject();
}
else {
try {
context.elementByIdIfExists(id, function(err, element) {
console.log('Element found: ' + element + ' retry: ' + retry);
if(typeof element === 'undefined') {
return resolve();
}
else {
setTimeout(() => waitForElementDisappears(retry-1, context), 1000);
}
});
}
catch (error) {
console.log(error);
return reject();
}
}
})(retries, self);
});
});
すべてのロードビューdisapearsまで正常に動作します::だから私はこのような何かを試してみました
情報:[デバッグ] [ブートストラップ] [デバッグ]を使用して:UiSelector [RESOURCE_ID = de.myapp.foo:id/loadingView] info:[デバッグ] [デバッグ] [BOOTSTRAP] [デバッグ]要素[]はnullです:(0)
がタイムアウトするまで何度も何度も繰り返します。
私も試してみました:
hasElementById(value, cb) -> cb(err, boolean)
elementByIdOrNull(value, cb) -> cb(err, element)
elementsById(value, cb) -> cb(err, element)
(空要素のリストをチェック)
など他の構文の方法:
context.elementByIdIfExists(id).then(element => { ... })
しかし、毎回私の出力何かのようだった:&ヘルプを読み取るための
Element found: 15 retry: 30
Element found: 15 retry: 29
Element found: 15 retry: 28
Element found: 15 retry: 27
# hangs because the loading view was disappeared and appium standalone starts to repeat the [debug][info] section above ...
ありがとう!