次のテストがあります。
fixture('Minimal reproduction')
.page('http://www.sport-conrad.com/');
test('Navigate to item-details', async t => {
await t
.click('.dropdown-toggle')
.click('.productData:first-of-type a')
});
これを実行すると
testcafe chrome test.js
、期待どおりに動作します。
もしそうならtestcafe nightmare test.js
、エラーが発生しますThe element that matches the specified selector is not visible.
。
私はこれを追跡して、明らかにエレクトロンブラウザの悪夢が使用するビューポートでページを開き、デスクトップナビゲーションが消えて.dropdown-toggle
見えなくなったという事実にたどり着きました。そこで、手動のサイズ変更を追加して、これを回避しました。
fixture('Minimal reproduction')
.page('http://www.sport-conrad.com/');
test('Navigate to item-details', async t => {
await t
.resizeWindow(1024, 900)
.click('.dropdown-toggle')
.click('.productData:first-of-type a')
});
だから私の最初の質問:これは機能しますが、testcafeがブラウザをナイトメアモードで開くという次元を提供する別の方法はありますか?
...しかし: 今.dropdown-toggle
戻ってきました。以前と同じように、テストが再び合格することを期待していました。
残念ながら、別のエラーが発生しました: The specified selector does not match any element in the DOM tree.
...これは 2 番目のセレクターに関連しているようです。理由はわかりませんが。
私の2 番目の質問: ここでの悪夢のようなブラウザーの違いは何ですか? 別のページで同様のテストケースを試してみたところ、クロムと同じようにページが正常にロードされたようです。
また、ブラウザをしばらく待機させるなどのいくつかの回避策を試しましたが、何も機能しませんでした。
多分誰かがここで私を正しい方向に向けることができますか? :)