使用WebBrowser类打开IE并获取HtmlElement

本文关键字:获取 HtmlElement IE WebBrowser 使用 | 更新日期: 2023-09-27 18:08:16

我正在使用Microsoft Visual Studio 2013 Ultimate,目前正在使用编码UI测试项目。当将其用于控制台应用程序时,我得到错误"类型为'System.Threading '的未处理异常"。当执行下面的第一行代码时,ThreadStateException'发生在System.Windows.Forms.dll ',但是当使用我的编码UI测试项目时,我没有得到它。

我的代码的最终目的是启动一个web浏览器。单击一些链接,并从浏览器内的某些ID字段读取信息。如果有人知道这样做的更好或更简单的工作实现,我完全赞成。

在我目前的实现中,ie浏览器永远不会启动。

WebBrowser web = new WebBrowser(); //create object web browser
web.CreateControl();
web.Visible = true;
web.ScriptErrorsSuppressed = true;
web.Navigate("www.gogle.com"); //Shouldn't this launch IE & go to google.com?
HtmlDocument doc = web.Document;
HtmlElement el = doc.GetElementById("hplogo");//get htmlelement on the google logo
//do something with info from el.
web.Dispose(); //de-allocate

使用WebBrowser类打开IE并获取HtmlElement

从MS KB841295你可以添加STAThread()属性到你的程序的主要入口点,这应该解决特定的异常。

[STAThread()]
static void Main(string[] args) {
    WebBrowser web = new WebBrowser(); //create object web browser
    //...
}