使用SHDocVw在运行IE时单击图像时出现问题

时间:2014-08-08 12:20:12

标签: c# .net

我试图使用SHDocVw通过C#模拟IE中的图像点击,但是有问题。我的程序似乎没有在代码中找到img ..这就是我得到的:

SHDocVw.ShellWindows AllBrowsers = new SHDocVw.ShellWindows();
    foreach (SHDocVw.InternetExplorer ieInst in AllBrowsers)
    {
       mshtml.IHTMLDocument2 htmlDoc = ieInst.Document as mshtml.IHTMLDocument2;
       string html = htmlDoc.body.outerHTML;               

           foreach (mshtml.HTMLImg imgElement in htmlDoc.images)
           {
              if (imgElement.nameProp.ToString().Equals("icon_go.GIF"))
              {
                 imgElement.click();
              }
            }
     }

以下是我正在处理的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>

问题是图片是网站上的一个按钮,但我不知道如何通过C#代码按下它。

是否有其他方法可以选择按钮?就像通过名称&#34; process1&#34;而不是去图像名称?

1 个答案:

答案 0 :(得分:1)

正如您在评论中指出的那样,您正在循环IMG,但您应该循环INPUT:

foreach (IHTMLElement element in htmlDoc.all)
{
    var input = element as IHTMLInputImage;
    if (input != null && Path.GetFileName(input.src).Equals("icon_go.GIF", StringComparison.OrdinalIgnoreCase))
    {
        ((IHTMLElement)input).click();
    }
}