2017-10-03 5 views
1

が存在する場合にのみ、私はそれが表示されている場合にのみ、「cancelUpgrade」ボタンでタップをシミュレートしたいと思います:デトックス:タップボタン私のテストで

it('should be in home menu', async() => { 
    await waitFor(element(by.id('cancelUpgrade'))) 
    .toBeVisible() 
    .withTimeout(2000); 
    await element(by.id('cancelUpgrade')).tap(); 
}); 

それが予想されるエラーにError: Cannot find UI element.

を返します。 https://github.com/wix/detox

あなたは、try/catchブロックでタップをラップすることができます
+0

「デトックス」とは – glennsl

+1

これは次のようなものです:https://github.com/wix/detox – glennsl

答えて

0

it('should be in home menu', async() => { 
    await waitFor(element(by.id('cancelUpgrade'))) 
    .toBeVisible() 
    .withTimeout(2000); 
    try { 
    await element(by.id('cancelUpgrade')).tap(); 
    } catch (e) {} 
    // continue your tests 
}); 

最善の方法ではないが、私はそれが現在detox内で可能なことだと思う。

+1

OPとは違うやり方と、あなたのサンプルが期待どおりに機能する理由を説明してください。 –

+0

このソリューションがなぜ機能するかについての詳細を伝えるだけです。デトックスのドキュメンテーションから: "注意:タイムアウトに達するとwaitForはスローされず、代わりに次の行に進みます。"したがって、ボタンが利用できない場合、.tap()はスローし、この場合にはキャッチによって静かに呑み込まれます。 – Antoni4

関連する問題