如何在C#中单击具有相同名称的下一个HTMLInputImage

时间:2014-08-11 11:09:13

标签: c# .net

我现在已经被困在一个项目上好几天了。杀了我我从这个地方得到了很多帮助,感谢我!现在,问题是:

当我按下"收集按钮时,我希望我的程序做什么?是自动点击每个按钮,名称为" icon_go.GIF"在页面上,然后从该页面收集一些信息。我现在遇到的问题是,当我的程序按下第一个按钮时,有10个,它会加载页面并收集第一条信息。然后,第一个按钮是"第一个"再次点击它再次点击。这个计数10次,因为有10个inputImages ...

如何让我的代码理解,点击下一步" icon_go.GIF"按钮而不是最后一次?

以下是我现在获得的代码:

private void btnCollect_Click(object sender, EventArgs e)
{

  SHDocVw.ShellWindows AllBrowsers = new SHDocVw.ShellWindows();

  foreach (SHDocVw.InternetExplorer ieInst in AllBrowsers)
  {

     mshtml.IHTMLDocument2 htmlDoc = ieInst.Document as mshtml.IHTMLDocument2;

     foreach (mshtml.IHTMLElement element in htmlDoc.all)
     {

         var input = element as mshtml.IHTMLInputImage;

         if (input != null && Path.GetFileName(input.src).Equals("icon_go.GIF", StringComparison.OrdinalIgnoreCase))
         {

             ((mshtml.IHTMLElement)input).click(); // Click the icon_go.GIF button

             System.Threading.Thread.Sleep(1000); // Wait 1 sec to load new page

             html = htmlDoc.body.outerHTML;

             /*
             Collecting info here
             */
          }
     }
 }

以下是一些HTML代码:

<TD align=center><INPUT title="View Detail Statistics" style="BORDER-LEFT-WIDTH: 0px; HEIGHT: 14px; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; WIDTH: 14px" src="../App_Themes/Company/Images/icon_go.GIF" type=image name=process1></TD></TR>
<TD align=center><INPUT title="View Detail Statistics" style="BORDER-LEFT-WIDTH: 0px; HEIGHT: 14px; BORDER-RIGHT-WIDTH: 0px; BORDER-BOTTOM-WIDTH: 0px; BORDER-TOP-WIDTH: 0px; WIDTH: 14px" src="../App_Themes/Company/Images/icon_go.GIF" type=image name=process2></TD></TR>

我希望你们明白我在这里想说的话...... 谢谢!

1 个答案:

答案 0 :(得分:0)

我解决了自己的问题!跟随mmeasors建议并列出所有输入!