6

HttpOnlyフラグが設定されているCookieを削除する必要がある一連のC#Seleniumテストがあります。

残念ながら、DefaultSelenium.GetCookie()andDefaultSelenium.DeleteCookie()コマンドはそのHttpOnlyフラグが設定されているため、Cookieにアクセスできません。手作業でフラグを削除し、これらのメソッドのいずれかへの後続の呼び出しが問題のCookieをうまく操作できることを確認することで、これを確認しました。

Selenium .NETクライアントドライバーを介してこれを行う他の方法はありますか?

すべてのアイデアを歓迎します!

4

1 に答える 1

5

クライアントドライバーを介してこれを行うことができなかったため、別の方法を見つける必要がありました. 幸いなことに、テスト対象の Web アプリには、セッション cookie (アクセスしようとしていた HttpOnly cookie) との対話を可能にするテスト ページが選択されているため、それらのページを自動化することで目的を達成することができました。

この問題に遭遇した他の人には、HttpOnly が ASP.NET にどのように焼き付けられるかについて、ここに良い SO 回答があります。

さらに、この SO answerは、アプリの web.config を介して HttpOnly を操作する方法を指摘していますが、オフにすることはできず、オンにすることしかできないという注意事項があります。

テスト目的でアプリケーションを変更したい場合は、この回避策を確認する必要があります。基本的には、Global.asax の Session_Start メソッドを変更して HttpOnly フラグを削除し、クライアント スクリプトがアクセスできるようにします。ただし、この種の回避策は、HttpOnly が導入されたセキュリティ ホール、つまり XSS 脆弱性を開くため、テスト環境でのみ使用する必要があります。Jeff Atwood が、これに関する優れたブログ記事をここに書いています。

于 2010-05-27T07:53:54.043 に答える