Wie aktualisiere ich die WebBrowser-Elemente?
-
Hi,
ich habe folgendes Problem:
Ich möchte bestimmte Daten von einer Internetseite auslesen, was auch klappt mit
meinen Methoden:private string getInnerText(HtmlElementCollection elements, string attribute, string attributeValue) { foreach (HtmlElement element in elements) { string tmp = element.GetAttribute(attribute); if (tmp.Contains(attributeValue)) { return element.InnerText.ToString(); } } return ""; } private string getInnerText(HtmlElementCollection elements, string attribute, string attributeValue, string attribute2, string attributeValue2) { foreach (HtmlElement element in elements) { string tmp = element.GetAttribute(attribute); if (tmp.Contains(attributeValue)) return getInnerText(element.Children, attribute2, attributeValue2); } return ""; } private string getInnerText(HtmlElementCollection elements, string attribute, string attributeValue, string attribute2, string attributeValue2, string attribute3, string attributeValue3) { foreach (HtmlElement element in elements) { string tmp = element.GetAttribute(attribute); if (tmp.Contains(attributeValue)) return getInnerText(element.Children, attribute2, attributeValue2, attribute3, attributeValue3); } return ""; }
Doch wenn ich jetzt z.B in meiner Form einen Button habe, der erst einen Button auf der Seite klicken soll mit:
private void clickButon(HtmlElementCollection elements, string attribute, string attributeValue) { foreach (HtmlElement element in elements) { string tmp = element.GetAttribute(attribute); if (tmp.Equals(attributeValue)) { element.InvokeMember("click"); } } } private void clickButon(HtmlElementCollection elements, string attribute, string attributeValue, string attribute2, string attributeValue2) { foreach (HtmlElement element in elements) { string tmp = element.GetAttribute(attribute); if (tmp.Equals(attributeValue)) { clickButon(element.Children, attribute2, attributeValue2); } } }
Und direkt danach die Daten ausgelesen werden sollen, bekomme ich nur Daten, die von der letzten Seite stammen (also vor dem Klicken).
Wenn ich das Klicken und das Auslesen auf 2 verschiedene Buttons lege, dann funktioniert es einwandfrei.Kann mir jemand sagen, wie ich den webbrowser "aktualisiert" bekomme, dass die neuen Daten für mich zur Verfügung stehen?
-
Also ich denke Du musst eben das Event abfangen, sobald der Webbrowser die neue Seite vollständig geladen hat. So hab ich das jedenfalls mal gemacht und da funktionierte es.