1
我的應用程序有一個功能,用於檢查是否有一個Internet Explorer選項卡在URL中用特定字符串打開,如果找到,則從特定元素中刪除innerText值該頁面。用C#打開IE瀏覽器標籤中的數據#
以下代碼基於代碼,該代碼適用於我的應用程序的另一部分,其中數據包含在iFrame中包含的元素中,但不是所涉及的功能(即所涉及的不包含iFrame)中的情況。這段代碼拋出一個'未設置對象實例的對象引用'。嘗試顯示請求元素的innerText值時發生異常,可能是因爲找不到該元素。
SHDocVw.ShellWindows shellWindows = new ShellWindows();
foreach (SHDocVw.WebBrowser ie in shellWindows)
{
if (ie.LocationURL.ToString().IndexOf("MyPage.aspx") != -1)
{
mshtml.HTMLDocument currentTab = ie.Document as mshtml.HTMLDocument;
//The below line throws an 'Object reference not set to an instance of an object.' exception.
MessageBox.Show(currentTab.getElementById("lblFoo").innerText.ToString());
break;
}
}
我在做什麼錯?此外,我是新來的網絡抓取,所以我知道這可能不是最新的方式去做這件事。我知道HtmlAgilityPack,但是我一直無法找到如何使用它來搜索元素(並提取它們的值)後,搜索打開的IE標籤中的特定網址的例子。
很可能是因爲currentTab.getElementById(「lblFoo」)沒有返回對象。首先檢查存在。 – Quintium
感謝您的回覆。 「lblFoo」肯定存在於我定位的標籤的源HTML中。 –