1

我有一个自动化许多业务功能的企业应用程序。我大量使用 WebBrowser 控件进行所有网站交互(网站抓取、Web 应用程序自动化等......)

我遇到过两个网站,它们根本无法在 WebBrowser 控件中正确呈现。具体来说:

  • 美国邮政服务 Click-N-Ship 网络应用程序。在支付邮资之前,一切正常。即使只是在 WebBrowser 控件中使用鼠标来控制它(非自动化),我也无法支付邮资。一旦我提交页面,它就会永远挂起。

  • UPS Quantum View 管理网络应用程序。此页面甚至不会加载到 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 回答