2016-07-19 10 views
-1

Ich möchte in der Lage sein, den Standardwebbrowser auf einer gegebenen Webseite von einer WinForms Mitteilungsbereichanwendung programmatisch zu starten. Ich mache das gerade mit Process.Start(url). Der Nachteil davon ist, dass, wenn eine Benutzeraktion den Start erneut auslöst, zwei Browser für dieselbe Seite geöffnet sind, etwas, das ich vermeiden möchte. Ich habe versucht, die Process zu verfolgen und in den Vordergrund zu bringen, aber es gibt keine Garantie, dass der Benutzer nicht weg navigiert oder die entsprechende Registerkarte geschlossen hat. Ich weiß, dass ich eine WebBrowser Steuerung verwenden kann, aber würde lieber den tatsächlichen Browser verwenden, wenn möglich. Ich brauche auch die Lösung, um mit einem der wichtigsten Browser zu arbeiten.Selenium WebDrivers verwenden, um geöffnete Webseite von .NET zu verfolgen

Jetzt könnte ich den falschen Baum bellen, aber ich stolperte über Selenium WebDrivers, die für mich neu sind. Ich weiß, dass es in erster Linie für das automatisierte Testen von Web-Anwendungen gedacht ist, habe aber auch ein paar Artikel gesehen, die darauf hindeuten, dass es allgemeiner genutzt werden kann. Ist es möglich Selenium zu verwenden, um ein Browserfenster zu starten und zu verfolgen, ob es sich in einer Produktionsumgebung noch auf der relevanten Webseite befindet?

+0

Ja. Werfen Sie einen Blick auf ein paar grundlegende Tutorials und was Sie fragen, ist wahrscheinlich abgedeckt. – JeffC

+0

@JeffC - Können Sie bitte einen empfehlen? Ich habe mir einige Tutorials angeschaut, aber alle scheinen einen benannten Browser-Treiber zu starten. Was ich brauche, ist den Treiber für den _runtime_ Standard-Browser auszuwählen (daran erinnern, dass dieser Code für einen WinForms-Client ist, keine Testumgebung). Ich habe auch die APIs durchsucht, kann aber nichts finden. – Giles

Antwort

0

Wenn ich richtig verstanden habe, möchten Sie auf etwas in Ihrer App klicken, das den Standardbrowser des Benutzers startet, die Kontrolle über diese App mit etwas (in diesem Fall Selenium) übernehmen und dann den Browser testen.

Starten des Browsers über eine App. Ich denke nicht, dass dies mit Selen möglich ist. Wenn Sie einen Treiber mit Selenium instanziieren, wird der Browser für Sie geöffnet. Selenium ist auch nicht in der Lage, eine existierende Instanz eines Browsers, z. Der, den deine App gestartet hat.

Wenn Ihre App nur einen Browser startet, sollten Sie testen, ob Ihre App den Browser ordnungsgemäß startet, und danach sollte alles das Standardverhalten des Browsers sein. Sie sollten nicht den spezifischen Browser testen müssen, den Ihre App gestartet hat. Sie sollten Ihre Site nur in den verschiedenen Browsern testen können, wo Selenium ins Spiel kommen kann. Schreiben Sie einige Testszenarien, die auf den verschiedenen Browsern ausgeführt werden, die Ihre Site testen usw.

Wenn Sie bestimmen möchten, welcher Browser der Standard ist, lesen Sie here.

+0

Danke @JeffC. Ich versuche nicht, eine Webanwendung überhaupt zu testen. Ich habe eine WinForms-App, mit der der Benutzer eine Webanwendung von Drittanbietern im Standardbrowser starten kann. Ich habe mich gefragt, ob ich Selenium verwenden könnte, um das UX besser für die Situation zu machen, in der der Benutzer die Webseite ein zweites Mal startet. Anstatt ein anderes Browserfenster zu öffnen, möchte ich, dass es sich auf das vorhandene konzentriert, falls es noch vorhanden ist. Ich bin mir nicht sicher, ob Selenium überhaupt für eine Produktionsumgebung geeignet ist. Ich hatte gehofft, dass es eine Allzweck-Browser-API bereitstellt, nicht nur eine zum Testen. – Giles