Проверьте, полностью ли загружена страница после перезагрузки - PullRequest
0 голосов
/ 28 февраля 2019

Я пытаюсь с таймером, проверьте, закончилась ли перезагрузка страницы после запуска browser.Reload (); метод

Я не могу использовать LoadingStateChange, потому что мне нужностраница должна быть полностью загружена и однажды загружена запустить скрипт только один раз

Мой код:

public void initTimer()
    {
        RunScriptAsync(); // this method is executing every one second
    }

    public bool reloadpage = false; // make the page reload some one time

    private async void RunScriptAsync()
    {
        if (!reloadpage)
        {
            reloadpage = true;
            browser.Reload();
        }

        var taskcheckdocument = browser.GetMainFrame().EvaluateScriptAsync("(function(){return (document.readyState === 'ready' || document.readyState === 'complete')})();", null);
        taskcheckdocument.ContinueWith(check =>
        {
            if (check.Result != null && check.Result.Result != null && check.Result.Result.ToString().Equals("True"))
            {
                //execute async script
            }
        }, TaskScheduler.FromCurrentSynchronizationContext);
        }

Однако существует проблема с этим кодом, документ taskcheckdocument недождитесь завершения метода browser.Reload (), и он уже будет выполнен, что приведет к его выполнению без перезагрузки страницы.

Как заставить метод browser.Reload () завершить работу для выполнения кода под ним?

...