Zajmuję się tworzeniem aplikacji Windows Forms w VS 2010 C# z kontrolą przeglądarki. Moim celem jest zautomatyzowanie nawigacji na tej stronie, ale gdy ja w pewnym momencie strona wyskoczy alert javascript, który zatrzyma automatyzację, aż do naciśnięcia przycisku OK. Rozwiązałem problem, symulując naciśnięcie klawisza Enter, gdy pojawiło się, ale aplikacja powinna pozostać skupiona, aby mogła działać. Moje pytanie brzmi, czy istnieje sposób na zabicie tego niestandardowego alertu javascript na stronie internetowej (nie mam dostępu do strony, zabić go od strony klienta), aby nie pojawił się lub w jakikolwiek inny sposób rozwiązać ten problem? Alert javascript (messagebox), który się pojawia, nie jest błędem, to alert javascript, który programiści tej witryny umieścili tam z jakiegoś powodu.Kontrola przez webBrowser zatrzymanie alertu javascript na stronie internetowej
5
A
Odpowiedz
0
Możesz spróbować wykorzystać wydarzenie Navigated
i przechwycić DocumentText
przed załadowaniem strony, aby usunąć referencje alert(...);
.
Od strony Navigated
na MSDN:
obsłużyć zdarzenia
Navigated
aby otrzymać powiadomienie, gdy kontrolaWebBrowser
został przejściu do nowego dokumentu. Po wystąpieniu zdarzeniaNavigated
nowy dokument rozpoczął ładowanie, co oznacza, że można uzyskać dostęp do załadowanej zawartości za pośrednictwem właściwościDocument
,DocumentText
iDocumentStream
.
Oto niektóre kodu:
using System.Windows.Forms;
using System.Text.RegularExpressions;
namespace Your.App
{
public class PopupSuppress
{
WebBrowser _wb;
public PopupSupress()
{
_wb = new WebBrowser();
_wb.Navigated += new WebBrowserNavigatedEventHandler(_wb_Navigated);
}
void _wb_Navigated(object sender, WebBrowserNavigatedEventArgs e)
{
string alertRegexPattern = "alert\\([\\s\\S]*\\);";
//make sure to only write to _wb.DocumentText if there is a change.
//This will prompt a reloading of the page (and another 'Navigated' event) [see MSDN link]
if(Regex.IsMatch(_wb.DocumentText, alertRegexPattern))
_wb.DocumentText = Regex.Replace(_wb.DocumentText, alertRegexPattern, string.Empty);
}
}
}
Sources/Zasoby:
- http://msdn.microsoft.com/en-us/library/system.windows.forms.webbrowser.navigated.aspx
- http://regexpal.com/
- (Niestety, miał więcej, ale tak będzie tylko niech mi pisać 2 linki)
Powiązane problemy
- 1. Kontrola WebBrowser jako Interfejs użytkownika
- 2. Jak wywołać funkcję JavaScript na stronie internetowej renderowanej przez Electron?
- 3. Kontrola WebBrowser nie wyzwala procedur obsługi zdarzeń
- 4. powiększ na stronie internetowej
- 5. Kontrola WebBrowser HTMLDocument automatyzuje wybór rozwijanej opcji
- 6. Jak uzyskać renderowane html (przetwarzane przez Javascript) w formancie WebBrowser?
- 7. Wyświetlanie czasu innego komputera na stronie internetowej przy użyciu Javascript?
- 8. Renderowanie dokumentu Microsoft Word na stronie internetowej
- 9. Algorytm wyszukiwania na stronie internetowej
- 10. Tajemnicze marginesy na stronie internetowej
- 11. Skrobanie przez Internet - jak zidentyfikować główną treść na stronie internetowej
- 12. Chrome DevTools przeszukuje wszystkie pliki javascript na stronie internetowej
- 13. jak zrobić logowanie do twittera na stronie internetowej javascript
- 14. podobny do konsoli interfejs na stronie internetowej przy użyciu javascript
- 15. Najlepszy sposób na zatrzymanie określonej funkcji JavaScript na urządzeniach mobilnych
- 16. Wizualizacja drzewa analizy zależności na stronie internetowej
- 17. Jak wykrywać puste miejsce na stronie internetowej?
- 18. Wyświetlaj dokładny czas lokalny na stronie internetowej?
- 19. Obiekt nie obsługuje właściwości lub metody Kontrola WebBrowser
- 20. show ebay feedback na mojej stronie internetowej
- 21. Dostęp do elementów tablicy JavaScript z języka C# (przez WebBrowser)?
- 22. Możliwe, że kontrola WebBrowser udostępnia pliki cookie za pomocą HttpWebRequest?
- 23. Zatrzymanie przeglądarki WebBrowser powoduje otwarcie przeglądarki Internet Explorer
- 24. OpenTok Api Rozsyłanie wideo na stronie internetowej
- 25. Symulowanie ekranu urządzenia na stronie internetowej
- 26. Znajdowanie złośliwego oprogramowania na stronie internetowej
- 27. Disqus Integracja SSO na stronie internetowej
- 28. Kontrola i izolacja WebBrowser oraz tryb IE8 InPrivate
- 29. Android WebView: Jak zmienić tekst tytułu alertu javaScript w przeglądarce internetowej na Androida?
- 30. Jak znaleźć element, który łamie HTTPS na stronie internetowej?
Zrobiło to trochę google: http://josheinstein.com/blog/index.php/2010/01/webbrowser-control-prevent-window-alert/ –