1

多くのビジネス機能を自動化するエンタープライズ アプリがあります。Web サイトのすべてのやり取り (Web サイトのスクレイピング、Web アプリの自動化など) で WebBrowser コントロールを多用しています。

WebBrowser コントロールで適切にレンダリングされない2 つの Web サイトに遭遇しました。具体的には:

  • 米国郵政公社の Click-N-Ship Web アプリ。送料を支払う時が来るまでは問題なくレンダリングされます。マウスを使用して WebBrowser コントロール (自動化なし) 内で制御するだけでも、送料を支払うことはできません。ページを送信するとすぐに、永遠にハングアップします。

  • UPS Quantum View Manage ウェブアプリ。このページは WebBrowser コントロールに読み込まれません。永遠にハングアップします。

これらは両方とも、私の IE10 ブラウザーでは問題なくレンダリングされます。

レジストリ キーを設定して、レンダリング エンジンをデフォルトの IE7 から IE9 に変更しようとしました。しかし、それでも同じ結果です。これらの Web アプリの一部は、WebBrowser コントロールでレンダリングされません。

だから....私のC#アプリからIE10ブラウザを自動化する方法はありますか?ある種のメッセージを送ることによって?リンクをクリックして、ログイン情報などのフォーム データを入力できるようにする必要があります。アドバイスをいただければ幸いです...

4

1 に答える 1

3

Seleniumなどのテスト ツールを使用してIE を自動化できます。IE ドライバーは、ダウンロードページからダウンロードできます。

Google を使用した簡単な例 (IE ドライバーを機能させる方法についての説明を必ずお読みください):

OpenQA.Selenium.IE.InternetExplorerDriver d = new OpenQA.Selenium.IE.InternetExplorerDriver();
d.Navigate().GoToUrl("http://www.google.com");

d.FindElementByName("q").SendKeys("Stack");
d.FindElementByName("btnK").Click();

WebDriverWait waiter = new WebDriverWait(d, TimeSpan.FromSeconds(10));

waiter.Until(ExpectedConditions.ElementExists(By.CssSelector(".rc .r a")));
// Message the first element
MessageBox.Show(d.FindElementByCssSelector(".rc .r a").Text);
于 2013-08-15T19:08:16.220 に答える