我正在尝试从网站上下载信息,而且我在漫长而乏味的旅程中遇到了(又一个)砖墙,以获得高效的开发。
我有一个使用 WebBrowser 登录网站的程序 - 使用有效的用户名和密码 - 允许我建立一个合法的连接并从中检索信息(我自己的)
从登录后呈现给我的初始页面开始,我可以使用WebBrowser.Document.GetElementsByTagName("A")
和WebBrowser.Document.GetElementById("Some Id")
等来处理网站,并处理所有 DocumentCompleted 事件返回到......我到达了一个似乎嵌入了 TabControl 的页面。
我需要能够选择此控件的中间选项卡,并检索它所拥有的信息。当我“正常”访问此信息时(即从IE而不是我的 WebBrowser 程序),我可以点击三个选项卡中的每一个并正确显示信息 - 所以它在那里,非常诱人......但是可以我从我的程序中删除了这些标签?我觉得它应该是可能的,但我看不出我能做到的。
问题出现了,因为当我处理包含Tab的页面时,我的代码看起来像这样:
static void wb_TabPage(object sender, WebBrowserDocumentCompletedEventArgs e)
{
WebBrowser wb = (WebBrowser)sender;
HtmlElement element;
element = wb.Document.GetElementById("Bills"); // Find the "Bills" tab
element.InvokeMember("Click"); // Click the "Bills" tab
// Unhook THIS routine from DocumentCompleted delivery
wb.DocumentCompleted -= new WebBrowserDocumentCompletedEventHandler(wb_TabPage);
// Hook up this routine - for the next 'Document Completed' delivery - which never arrives!
wb.DocumentCompleted += new WebBrowserDocumentCompletedEventHandler(wb_Bills);
return;
}
这就是问题 - 即使在InvokeMember(“Click”)之后,我也没有更多的文档可以“完成”。对于全世界来说,Tabs正在进行现场更新,并且没有任何刷新(导航)或导航或事件处理将允许我到达某个地方或我可以从中获取数据的位置
有人知道我该怎么做吗?有人知道如何操纵WebBrowser中的Tabs吗?如果你这样做,请提前致谢...
答案 0 :(得分:1)
尝试在页面上使用findcontrol功能。您可能需要深入查看选项卡控件本身以查找选项卡页面及其中包含的控件。