C# 等待加载网页,直到找到元素

C# 等待加载网页,直到找到元素,c#,winforms,browser,synchronous,C#,Winforms,Browser,Synchronous,我不熟悉c#及其概念。我正在尝试使用winforms webbrowser控件实现自动化 我正在寻找一种方法,加载一个网页,直到找到一个web项为止。 要等待网页加载,我使用行“wait(30)” “等待(30)”这是一个明显的期望,这不是最优的 我只需要同步下载: 查找web项,如果网页上缺少该web项,请等待1秒钟,如果找到该web项,请完成下载网页 这是我的密码: private void Wait(int number) { DateTime time = DateTime.No

我不熟悉c#及其概念。我正在尝试使用
winforms webbrowser控件实现自动化

我正在寻找一种方法,
加载一个网页,直到找到一个web项为止
。 要等待网页加载,我使用行“wait(30)” “等待(30)”这是一个明显的期望,这不是最优的

我只需要同步下载
: 查找web项,如果网页上缺少该web项,请等待1秒钟,如果找到该web项,请完成下载网页

这是我的密码:

private void Wait(int number)
{
    DateTime time = DateTime.Now;
    do
    {
        Application.DoEvents();
    }
    while (time.AddSeconds(number) > DateTime.Now);
}

private void CheckFindElement1()
{
    try
    {
        Wait(30);
        var mlm = web_Browser.Document.GetElementById("id1");
    }
    catch (Exception)
    {
        Wait(1);
        CheckFindElement1();
    }
}

你的解决方案是非常无效的。您应该使用
WebBrowser.DocumentCompleted
事件,也可以使用
WebBrowser.ReadyState属性

private void CheckFindElement1()
{
   //This will go on untill the full page is loaded
    while (WebBrowser1.ReadyState.ToString() != "Complete") {
        Application.DoEvents();         
    }

   // Do your stuff here.
}
看。将其与配对以验证当前文档是否已完成,然后开始搜索您关心的元素。