Я использую элемент управления C# WebBrowswer, и у меня есть проблема, когда при нажатии кнопки, такой как «Далее», когда страница еще не загружена, программа пытается продолжить, но вместо этого дает мне null ошибка.Подождите, пока страница не загрузится в элементе управления веб-браузером
Есть ли функция, чтобы программа дождалась загрузки страницы?
Я попытался поместить цикл while в программу, которая проверяет заголовок html-страницы, но затем программа замерзает. Нечто подобное будет заморозить программу:
while(!webbrowser1.Document.Title.ToString().Equals("NextPageTitle"))
{
}
::NextCommands::
он не работает, я попробовал, что и кнопка «fblqf» не нажата. но его не возвращает нулевой ошибки ..
public void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementById("q").SetAttribute("value", "חחח");
webBrowser1.Document.GetElementById("btnK").InvokeMember("Click");
webBrowser1.DocumentCompleted += webBrowser1_DocumentCompleted;
}
void webBrowser1_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
// do the work you need to do now that that page has completed loading
webBrowser1.Document.GetElementById("fblqf").InvokeMember("Click");
}
Решение:
public void button1_Click(object sender, EventArgs e)
{
webBrowser1.Document.GetElementById("q").SetAttribute("value", "חחח");
webBrowser1.Document.GetElementById("btnK").InvokeMember("Click");
int x=0;
while (x==0)
{
System.Windows.Forms.Application.DoEvents();
if(webBrowser1.Document.GetElementById("pnnext") != null)
break;
}
webBrowser1.Document.GetElementById("pnnext").InvokeMember("Click");
webBrowser1.Document.GetElementById("q").Focus();
}
Вам действительно нужен x? Не могли бы вы поместить webBrowser1.Document.GetElementById ("pnnext") == null внутри условия while? – Puce
Возможно, вы правы, так как вы можете видеть, что это один из моих первых фрагментов кода. – hagai