2017-10-23 17 views
0

現在、私は少し問題に直面しています。IEDriverServerでランダムにテストが失敗する

chromeとfirefoxでは、テストはIEのテスト実行中に完全に実行されますが、特定の要素を選択できないことがあります。

(ChromeとFirefoxは、すべてのパスをテストし、IEで時々1つ以上のテストが失敗。しかし、時には彼らはすべてのパス。ビットのランダムのようです。)

誰もが、問題が何であるかを知っていますか?私はIEDriverを呼び出すために使用しています

コード:

var service = InternetExplorerDriverService.CreateDefaultService(); 
service.LibraryExtractionPath = "Path to extraction path"; 
service.Port = 1089; 

InternetExplorerOptions options = new InternetExplorerOptions(); 
options.IgnoreZoomLevel = true; 
options.IntroduceInstabilityByIgnoringProtectedModeSettings = true; 

InternetExplorerDriver("Path",options); 
return ieDriver = new InternetExplorerDriver(service, options); 

IEDriver 3.5.1.0使用IE11

には

答えて

0

鱗片状のテストは、セレンベースのテストで大きなものです。簡単に言えば、あなたの実行に影響する可能性のある要素が多すぎます。 IEでの私の経験は、ブラウザが実際にDOMを構築し、異なるスピードでコンテンツをレンダリングすることを教えてくれました。これは、WebElementsが有効になっていることを意味し、さまざまな時間帯(大きく異なる可能性があります)、特に豊富なアニメーションに対応しています。

enter image description here

それはHTML5で操作や計算をレンダリングする一般的なページ読み込み速度、メモリ使用量、およびテストでのパフォーマンスに来るときyou can seeとしてIEがトップパフォーマーではありません。

あなたを助けることができる何か:

// need to wait for Javascript to load 
((IJavascriptExecutor) driver).ExecuteScript("return document.readyState").ToString().Equals("complete"); 
// need to wait for jQuery to load 
((IJavascriptExecutor) driver).ExecuteScript("return (window.jQuery != null) && (jQuery.active === 0);"); 
    • ExplicitWaitsを呼び出し、のようなので、(私は当時、私の枠組みの中で使っていたコードを覚えしようとする)前に、カスタムJS条件を追加ページ要素と対話する前に十分な時間(Waits)を与えてください。

  • +0

    @ekonstadinovまずは、あなたの徹底的な回答に感謝します。しかし、ページ要素(例:テキストボックス、ボタン)はすべてレンダリングされています。問題は、コードが私が探している要素を見つけることができないことであると思われます。ランダムに発生するように見えるので、私はそのJS問題を考えません。他に何ができるのか考えていますか? (私は3秒間待ってからインタラクティブにしてから30秒後に要素を見つける) – user1343543

    +0

    IEで要素を一度でも見つけることができれば、それはセレクタの問題ではないと私は言います。しかし、私はXPathとFirefoxで同様のエッジケースに直面してきました。たとえば、さまざまなロケータで試すことができます。現在のCSSがCSSの場合はXPathを試してください。一般的にドライバーとブラウザーの同期の問題は稀ではなく、詳細なデバッグが必要です。もう1つ - FEは角のような複雑なフレームワークを使用していますか?はいの場合は、イベントを処理するためにさらに複雑な移植が必要になります。 – ekostadinov

    関連する問題