IHTMLElement单击不将HTMLDocument前进到下一页

时间:2018-09-28 06:58:53

标签: javascript c# dom web

更新:我意识到我检查元素的速度太快了,需要给hdoc_Doc时间加载。通过ID获取元素并触发click事件起作用。问题解决了。

我正在尝试导航到Startpage.com中几页搜索结果的第x页。我可以成功地将对象解析为IHTMLElement.getElementByID(“ 2”);我使用它的Click()事件触发它后面的JavaScript。文档仍然停留在搜索结果的第一页上。

private void GetNextPage(int i_page)
{
   HTMLDocument hdoc_Doc = (HTMLDocument)wb1.Document; // wb1 is at page one of search results
   IHTMLElement element_Page = hdoc_Doc.getElementByID(i_page.ToString());
   if (null != element_Page)
   {
       // element_Page.click(); // Changed to below statement
       hdoc_Doc.getElementByID("2").click();  // It now works
   }
   // Now check to see which titles are showing
   IHTMLElement element_OneCheck = hdoc.getElementByID("title_1"); // Page one search results
   IHTMLElement element_TwoCheck = hdoc.getElementByID("title_11"); // this is on page 2 search results if it gets there...
   if (null != element_OneCheck)
       Console.WriteLine("Page One Still...");
   if (null != element_TwoCheck)
       Console.WriteLine("Page Two found...");
}

结果是:“第一个页面仍...” 我什至尝试对文档采取直接行动:

hdoc_Doc.getElementByID("2").click;

这再次起作用,但是没有将文档前进到搜索结果的下一页。我还使用HTMLAgilityPack对此进行了解析,但这是为了解析不处理javascript链接,这就是我走这条路线的原因。 这是我要执行的链接:

<a href="javascript:;" class="numbers_st" onclick="mysubmit(20); return false;" id="2">2</a>

任何帮助将不胜感激!我在使用VS 2010的.NET 4.0上运行(是的,我知道它很旧,但是相对于更新版VS的免费版本是Ultimate,因此我坚持使用2010作为完整环境。)

0 个答案:

没有答案