私はWatiNライブラリを使用して、展開後にWebサイトで迅速な煙のテストを行っています。とりわけ、私は自分のページ上の特定のリンクをクリックすると、ブラウザにPDFが開かれていることを確認したい。リンクをクリックするのは簡単ですが、ブラウザウィンドウでAcrobat Readerが正常に開かれた場合はどうすれば検出できますか?私は404のような状況で、サーバーエラー、またはタイムアウトをキャッチしたいと思います...WatiNを使用してブラウザでPDFが正常に開かれたかどうかを確認する方法は?
答えて
こする、
私は1つのバグレポートやこの問題に関する一つの特徴リクエストを見つけました。バグと機能リクエストは閉じられていますが、PDFドキュメントをホストしているIEウィンドウにはまだ接続できません。
実際、PDFファイルをホストしているウィンドウは、IE.InternetExplorers()またはInternetExplorersNoWait()コレクションの項目でもありません。
Windows XPではWatiN 2.0.10.928とIE7を使用しています。
私のソリューションがInterop.ShDocVw.dllへのCOM参照を追加し、ホストPDFの視聴者が何らかの理由でWatiN.IE.InternetExplorers()コレクション内の項目ではないことをIEのウィンドウので、ウィンドウのために自分を確認し使用していました。
参照の追加 - > COM - > Microsoftインターネットコントロールv1.1を使用してInterop.ShDocVw.dllへの参照を追加しないでください。
System.IO.FileLoadException:あなたは良い機会をtheresの場合は、この例外受け取るよファイルまたはアセンブリをロードできませんでした「Interop.SHDocVw、バージョン= 1.1.0.0を、文化=中立...かその依存関係の1つ。配置されたアセンブリのマニフェスト定義がアセンブリ参照と一致しません(HRESULTの例外:0x80131040)
代わりにWatiNで配布されているShDocVw.dllを参照する必要があります。詳細はStackOverflowの質問「アセンブリ読み込むことができませんでしたWatiNエラー」をチェックアウト: WatiN Error Could not Load Assembly
using System.IO;
using SHDocVw;
namespace PDF_SPIKE
{
class Program
[STAThread]
static void Main(string[] args)
{
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();
string pdfViewerURL = "http://YourURL/document.pdf";
bool pdfOpened = false;
string filename;
foreach (SHDocVw.InternetExplorer ie in shellWindows)
{
filename = Path.GetFileNameWithoutExtension(ie.FullName).ToLower();
if (filename.Equals("iexplore") && ie.LocationURL.Equals(pdfViewerURL))
pdfOpened = true;
}
if (pdfOpened)
Console.WriteLine("Your PDF file is OPENED");
else
Console.WriteLine("Your PDF file was NOT found.");
}
おかげで、モモを、この答えを。それは私にとっても非常に役に立ちました。
他の誰かが私と同じ問題に遭遇した場合に備えて、私はちょうどこの答えに追加の解決策を与えたいと思います。
私が最初にこのラインを実装し、エラーを受け取った:
SHDocVw.ShellWindows shellWindows = new SHDocVw.ShellWindowsClass();
"SHDocVw.ShellWindowsClassを埋め込むことができない、代わりに該当するインタフェースを使用"
ソリューションはここで見つけることができます: http://www.debugging.com/bug/24258
Interop.ShDocVW.dllの参照を右クリックし、埋め込みinteropの型をfalseに設定する必要があります。
- 1. IE(Internet Explorer)ブラウザがBHOで開かれているかどうかを確認する方法は?
- 2. pingが正常に送信されたかどうかを確認します
- 3. ブラウザがotfをサポートしているかどうかを確認する方法
- 4. 値が正常に挿入されたかどうかを確認する方法は?
- 5. launchdがスクリプトを開始したかどうかを確認する方法は?
- 6. glibcが使用されているかどうかを確認する方法
- 7. SOAP障害が正常に処理されているかどうかを確認する方法?
- 8. 電子メールが正常に送信されたかどうかを確認する方法?
- 9. 添付されたすべてのメソッドが正常に完了したかどうかを確認します。
- 10. powershellを使用してポートが使用されているかどうかを確認する方法
- 11. C#の - どのようにプロセスが正常に起動したかどうかを確認するために
- 12. アクティビティがAlarmManagerによって開かれたかどうかを確認する方法は?
- 13. テキストファイルがgeditで開いているかどうかを確認する方法
- 14. dllがシステムに存在するかどうか、またはC++を使用してSQLSERVER2008がインストールされているかどうかを確認する方法
- 15. ユーザーが使用しているブラウザを確認するにはどうすればよいですか?
- 16. ユーザーがAndroidでタブレットまたは電話を使用しているかどうかを確認する方法
- 17. PHP PDOでクエリが正常に実行されたかどうかを確認するには?
- 18. gridviewのチェックボックスのイベントをクリックし、それが確認されたかどうかを確認する方法は?
- 19. マイクロフォーマットを使用しているかどうかを確認する方法
- 20. ブラウザがHistory.Pushstateをサポートしているかどうかを確認する方法はありますか?
- 21. JavaScriptを使用してウェブページが完全にロードされているかどうかを確認する方法
- 22. OAUTHを使用してYouTube認証が機能しているかどうかを確認する方法
- 23. システムに特定のWebブラウザがインストールされているかどうかを確認する方法は?
- 24. jqueryUIのオートコンプリートドロップダウンボックスが開いているかどうかを確認する方法
- 25. Python gtk:コンボボックスが開いているかどうかを確認する方法?
- 26. window.history.goが正常に実行されているかどうかを確認しますか?
- 27. ユーザーがBraveをブラウザとして使用しているかどうかを確認するにはどうすればよいですか?
- 28. ダーティチェックが使用されているかどうかを確認するには?
- 29. ブラウザがどのフォントを使用していてCSSを使用しているかを確認しますか?
- 30. サーバーがRED5またはFMSを使用しているかどうかを確認する方法?