0

私の職場では、Web ブラウザーの自動テストを実装する必要があります。Selenium Web ドライバーが優先オプションとして選択されました。同社はクライアント ベースに Internet Explorer を使用しているため、このブラウザを使用してテストを実施する必要があります。

使用:

セレン 2.25.1、IEDriverServer 2.25.3、nUnit 2.6.1

最も基本的なテストを作成し、個人のラップトップで正常に実行しました。

  1. C# クラス プロジェクトを作成します。Selenium、IEDriverServer (場所)、および nUnit DLL への参照を追加します。

  2. nUnit のテスト コードとクラス/メソッドの装飾を追加します。

  3. ビルド、コンパイルなど

nUnit で、新しくコンパイルされた DLL プロジェクトを見つけて実行します。

期待される結果は、IEDriverServer が Internet Explorer のインスタンスを読み込んで作成し、Google ホームページに移動することです。検索を実行し、結果ページのタイトルを確認して、結果のリンクを解析します。

私の職場のマシン (マカフィーがインストールされている) から同じテストを実行すると、実際には、Google 検索ボックスに (SendKeys を使用して) 入力された各文字が完了するまでに約 6 ~ 10 秒かかります。その結果、IEDriverServer はあきらめて閉じます。nUnit はテストを失敗として報告します。

調べてみると、マカフィーのアクセス保護ログに「Common Standard Protection:Prevent common programs from running files from the Temp folder」というエントリが何百もあることがわかります。

私は Web 自動化は初めてですが、これが問題の原因であると確信しており、レジストリと環境変数を使用してさまざまなハックを試みましたが成功しませんでした。

この問題について他の場所で多くを見つけることができないようです.1人が回避策を提案できることを願っています.

同社は、明らかな理由で McAfee 機能を緩和することはできません。

4

1 に答える 1

1

IE ドライバーが使用する IEDriverServer.exe では、サポート ライブラリ (DLL) を使用する必要があります。この .DLL を実行可能ファイルと共に展開することをユーザーに強制するのではなく、.exe ファイル内にリソースとして保存し、実行時に抽出します。バージョン 2.25.3.5 の IEDriverServer.exe (ダウンロードとしてはリリースされていませんが、プロジェクトの Subversion リポジトリでビルド済みのバイナリ-extract-path="C:\path\to\where\the\library\should\be\extracted"として入手できます) では、コマンドライン スイッチ. ディレクトリが存在し、そのディレクトリへの書き込み権限がある限り、サポート ライブラリはそのディレクトリ内のランダムな名前のファイルに抽出されます。

InternetExplorerDriverService.NET バインディングが更新され、クラスの一部としてこの新しいコマンド ライン スイッチを利用するためのコードが含まれるようになりました。この機能は、WebDriver .NET バインディングの次のパブリック リリースの一部として利用できるようになります。

于 2012-08-29T00:11:06.577 に答える