我有一个自动化许多业务功能的企业应用程序。我大量使用WebBrowser控件来处理我的所有网站交互(网站抓取,网络应用程序自动化等等)。
我遇到过两个网站,它们只是在WebBrowser控件中 NOT 正确呈现。具体做法是:
美国邮政服务Click-N-Ship网络应用。呈现罚款,直到需要支付邮资为止。即使只是使用鼠标在WebBrowser控件中控制它(没有自动化)也不允许我支付邮费。当我提交页面时,它就会永远挂起。
UPS Quantum View管理网络应用程序。此页面甚至不会在WebBrowser控件中加载。永远挂起。
这两个在我的IE10浏览器中渲染得很好。
我已尝试设置注册表项以将呈现引擎从默认IE7更改为IE9。但结果仍然相同。这些Web应用程序的某些内容无法在WebBrowser控件中呈现。
所以....有没有办法从我的C#应用程序自动化IE10浏览器?通过发送某种消息?我需要能够点击链接并填写表格数据以获取登录信息等。任何建议赞赏...
答案 0 :(得分:3)
您可以使用Selenium之类的测试工具来自动化IE。您可以从downloads页面下载IE驱动程序。
使用谷歌的一个简单示例(请务必阅读有关如何使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);