Задать вопрос

Как правильно выполнять JS в CEFSharp?

Для работы использую CEFSharp. Многое реализовал и работает успешно. Остался единственный момент, который никак не могу победить, т.к. на локальной машине нет возможно проверить сайт.
Жду полной загрузки страницы, далее выполняю скрипт. Таких страниц может быть 3-10 - каждая в своей вкладке.
Нашел такой метод: private void WebBrowserFrameLoadEnded(object sender, FrameLoadEndEventArgs e), реализовал под себя так:

private void WebBrowserFrameLoadEnded(object sender, FrameLoadEndEventArgs e)
        {
            if (e.Frame.IsMain)
            {
                if (AddressBar.Text.Contains("ya"))  //проверка на адрес
                {
                    WebBrowser.ExecuteScriptAsync("document.querySelectorAll('#checkbox_panel > span').forEach(function(i){ i.click()})" + ";");
                }
            }
        }

В какой-то момент, а может и сразу программа тупо закрывается, но может и стабильно работать. Как данный код "обвязать" проверкой, что полностью станица загружена, тогда выполнить скрипт? Сайт тяжелый и может долго рендерится, а скрипт выполняет намного раньше, чем подгружена страница и поэтому выкидывает из программы. Может я не в том методе все это делаю?
  • Вопрос задан
  • 160 просмотров
Подписаться 1 Простой 7 комментариев
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы