c#Webbrowser控件如何在循环中单击按钮?

时间:2018-10-06 06:07:41

标签: c# loops button click webbrowser-control

这是我的代码,

List<string> ValidLesson = new List<string>();
if (myBrowserESchool.DocumentText.Contains("ddlSinifiSubesi"))
{
    HtmlElement ClassName = myBrowserESchool.Document.GetElementById("ddlSinifiSubesi");
    bool flag = ClassName == null;
    if (!flag)
    {
        HtmlElementCollection ClassNameOptionList = ClassName.GetElementsByTagName("option");
        for (int i = 0; i < ClassNameOptionList.Count; i++)
        {
            ClassNameOptionList[i].SetAttribute("selected", "selected");
            if (ClassNameOptionList[i].InnerText != null)
            {
                HtmlElement buttonelement = myBrowserESchool.Document.GetElementById("btnListele");

                buttonelement.InvokeMember("click");
                while (true)
                {
                    HtmlElement ClassLesson = myBrowserESchool.Document.GetElementById("ddlDersler");
                    if (ClassLesson != null)
                    {
                        HtmlElementCollection ClassLessonOptionList = ClassLesson.GetElementsByTagName("option");
                        foreach (HtmlElement lessonoption in ClassLessonOptionList)
                        {
                            ValidLesson.Add(lessonoption.InnerText);
                        }
                        ClassLesson = null;
                        break;
                    }
                    Application.DoEvents();
                    Thread.Sleep(500);
                }
            }
        }
    }
}

在这里,我要单击for循环中的按钮。但是,第一次单击后,buttonelement.InvokeMember("click");不起作用。另一个问题是,第一页加载后我丢失了ClassName,并给内部文本一个例外,因为webbrowser的文档已更改。我应该怎么做才能不失去这一要素?对不起,我的英语不好。

0 个答案:

没有答案