无法使用.NET WebBrowser控件单击yahoo邮件中的复选框

时间:2014-01-16 16:49:40

标签: c# winforms

在WinForms中,我正在尝试一种非常简单的WebBrowser控件用于雅虎邮件。我在vs2010中使用WebBrowser组件。首先,我加载一个页面:

webBrowser1.Url = new Uri("http://mail.yahoo.com");

然后我尝试选择电子邮件中的所有项目:

private void btnSelectAll_Click(object sender, EventArgs e)
{
  // Select checkboxes containing the word "this" (Select this email)
  foreach (HtmlElement oCheckBox in webBrowser1.Document.GetElementsByTagName("input"))
  {
    if (oCheckBox.GetAttribute("type").ToLower() == "checkbox")
    {
      if (oCheckBox.OuterHtml.ToLower().Contains("this"))
      {
        //oCheckBox.SetAttribute("value", "Yes");  //did not work
        //oCheckBox.SetAttribute("value", "1");    //did not work
        //oCheckBox.InvokeMember("Click");         //did not work
        oCheckBox.InvokeMember("CLICK");           //did not work
      }
    }
  }
}

尝试了上述所有操作,但没有一个选中复选框。不确定是否特定于如何设置雅虎邮箱中的复选框?任何帮助将不胜感激。

先谢谢

1 个答案:

答案 0 :(得分:0)

<强>解决方案:

private void btnSelectAll_Click(object sender, EventArgs e)
{
  // Select checkboxes containing the word "this" (Select this email)
  foreach (HtmlElement oCheckBox in webBrowser1.Document.GetElementsByTagName("input"))
  {
    if (oCheckBox.GetAttribute("type").ToLower() == "checkbox")
    {
      if (oCheckBox.OuterHtml.ToLower().Contains("this"))
      {
        oCheckBox.SetAttribute("checked", "true");
      }
    }
  }
}