1

Selenium (2.24) を使用して単体テストを生成しています (Visual Studio 単体テスト フレームワーク用)。FireFox 用の C# WebDriver を使用しているときに、ドライバーによって起動されたブラウザーが、javascript を介して Web サイトの Cookie を見つけられないようです (Cookie を検索し、それらが見つかったかどうかを知らせる JavaScript ファイルがサイトに含まれています)。 )。また、ブラウザの画像キャッシュを使用しておらず、常にサーバーから新しい画像を要求しています。「通常の」(Selenium によって起動されていない) FireFox からサイトを実行すると、この動作は発生しません。

奇妙なことに、単体テストで以下のコードを呼び出すと、Cookie が返されます (JavaScript では見つからないだけです)。

driver.Manage().Cookies.GetCookieNamed("MyCookie");

Cookie を尊重し、ブラウザーの画像キャッシュを使用するようにドライバーを構成するにはどうすればよいですか? この機能は、私の Web サイトをテストするための鍵です。

4

2 に答える 2

3

デフォルトでは、FirefoxDriver は Firefox を起動するたびに新しい匿名プロファイルを作成します。既存のプロファイルを使用する場合は、そのように指示する必要があります。

Java では、次のようにします。

ProfilesIni allProfiles = new ProfilesIni();
FirefoxProfile profile = allProfiles.getProfile("MyProfile");
WebDriver driver = new FirefoxDriver(profile);

C#にも似たようなものがあると思います

于 2012-07-06T15:16:57.870 に答える
2

Cookie の場合: Cookie が「HTTP のみ」としてマークされている場合、ページ上の JavaScript はそれを見ることができません。その結果、ページで JavaScript の実行を使用するコードは、この特定の Cookie を認識しません。

HTTP デバッガー (Fiddler など) を使用して、Cookie が HttpOnly プロパティで設定されているかどうかを確認することで確認できます。また、開発ツールを介してページでスクリプトを実行するかjavascript:alert(...)、アドレスバーに入力して Cookie を表示できるかどうかを確認することもできます ( document.cookie)

于 2012-07-05T22:10:59.730 に答える