Selenium Tutorial
Wir begrüßen Sie in unserer Selenium Tutorial Sammlung. Hier finden Sie Selenium Webdriver Tutorials und Tipps zu Selenium von der Testing-Board-Redaktion und auf vielen weiteren externen Artikeln aus dem Web.
Es folgen gute Anlaufstellen und eine Lister stets aktueller Artikel von Selenium Tutorials.
Selenium Tutorial Deutsch und Englisch
Testing-Board.com Selenium Tutorials und Artikel
Selenium Webdriver Tutorial 1: Grundlagen Testautomatisierung WordPress und Basis Testframework
Dieses Selenium Tutorial soll Grundlagen in der Testautomatisierung mit Selenium am Beispiel unserer Testing-Board WordPress Website vermitteln. Dazu brauchen wir automatisierte Testskripte in Selenium und ein paar Testing-Tools drum herum. Wir nutzen Selenium Webdriver, dies wird auch Selenium 2 genannt. Endziel: Ein Hybrides Selenium Testframework, Data-Driven und Keyword-driven Neben den Grundlagen wollen wir nach und nach vermitteln, wie wir ein …Read More »Selenium Webdriver Tutorial 2: WordPress Testautomatisierung, Optimierung zum Testframework
Da wir in diesem zweiten Tutorial viel über Verbesserungen und Veränderungen unserer Testautomatisierung schreiben, ist es sinnvoll für Sie als Leser, dass vorhergehende Tutorial „Selenium Webdriver Tutorial 1“ zu kennen und den Stand des dort angelegten Selenium-Java-Projekts bis zum Ende ausprobiert zu haben. ToDo Optimierungen des Selenium Codes Eine Basis für strukturierten und wartbaren Code haben wir zum Teil in …Read More »
Externe Selenium Artikel
WWW – Externe Selenium Tutorial
Loading...
WWW – Externe Selenium Blogs und Selenium Tutorial
Loading...
WWW – Neuste Selenium Themen auf Stackoverflow
Loading...
WWW – Letzte Selenium Changes im Trunk Branch
Loading...
Ich habe das Tutorial „Selenium Webdriver Tutorial 1: Grundlagen Testautomatisierung WordPress und Basis Testframework“bearbeitet. Zu diesem Zweck habe ich den ChromeDriver in der Version 2.20 installiert:
String pathToChromeDriver = „.//ChromeDriver//chromedriver.exe“;
System.setProperty(„webdriver.chrome.driver“, pathToChromeDriver);
Dann rufe ich folgende URL auf:
String URL = „http://myusername:mypassword@www.testinst.testing-board.com/“;
System.out.println(URL);
Chrom1.get(URL);
Es erscheint der Login-Dialog
Hallo Christoph,
scheint doch auf einem guten Weg bei dir zu sein, schön dass dir unser Selenium Tutorial Nutzen bringt. So direkt finde ich auch gar keine Frage in deinem Kommentar, denn alles was du machst, ist ja korrekt. Ich denke mal du wunderst dich über die Abfrage mit dem Username/Passwort Dialog im Browser-Popup. Dazu erkläre ich einfach mal ein bisschen.
Also du befindest dich anscheinend gerade in folgendem Teil des Selenium Tutorials:
Exkurs: Selenium und Webserver Authentication/ HTTP-Authentifizierung / Basic Authentication
Denn du gehst auf unsere Testinstanz (erkennst du an deiner genutzt URL, dort ist „testinst.“ als Subdomain eingetragen) und du hast vorne weg in der Url Username und Passort eingetragen:
String URL = „http://myusername:mypassword@www.testinst.testing-board.com/“;
Mit der URL (www.testinst.testing-board.com) landest du somit auf unserer Testinstanz, eine Subdomain, die nicht öffentlich zugänglich ist.
Die Daten für das HTTP Basic Auth, hast du nicht, deswegen kommst du an dem Dialog nicht vorbei.
Deine Testing-Board-Login Daten kannst du an der Stelle nicht verwenden, falls du dies versucht hast, denn die HTTP Authentifizierung hat mit unserem Login auf der Webseite nicht zu tun.
Falls du HTTP Basic Auth nicht kennst, einfach mal nach „HTTP Authentifizierung“ googlen. Kurz zur Erklärung: Unsere Testinstanz soll nicht öffentlich erreichbar sein, deswegen ist sozusagen direkt beim Webserver eine Authentifizierung vorgeschaltet. Das Tutorial zeigt an der Stelle korrekt, wie man an solch einer Webserver HTTP Authentifizierung vorbei kommen würde, aber ausprobieren kannst du es leider nicht, da du die korrekten Authentifizierungs-Daten nicht hast. Um an dem Dialog vorbei zu kommen, müsstest du in deinem Selenium-Skript „myusername:mypassword“ durch korrekte Daten für unsere HTTP Basic Auth eintragen.
Was kannst du tun:
– Die Stelle in unserem Selenium Tutorial überspringen, denn alles läuft korrekt und mit korrekten Daten würdest du auch weiter kommen. Die weiteren Beispiele im Tutorial sind dann ohne HTTP Auth und sollten funktionieren.
– Unser Beispiel auf eine andere Webseite deiner Wahl übertragen, ggf. hast du eine eigene, bei der auch solch eine HTTP Basic Authentication vorgeschaltet ist. Mit dem gleichen Prinzip solltest du dort weiter kommen und kannst mal ein bisschen ausprobieren.
Viel Erfolg weiterhin!
P.S.: Du kannst auch direkt in dem betreffenden Artikel einen Kommentar hinterlassen, wenn mal Fragen dazu aufkommen. Über einen Social-Share, wenn der Artikel dir hilft, freuen sich die Autoren immer sehr.
Edit:
– Als schnelle Lösung kannst du natürlich auch „http://myusername:mypassword@www.testinst.testing-board.com/“ einfach durch „http://www.testing-board.com/“ ersetzen.
^^Edit:
– Als schnelle Lösung kannst du natürlich auch „http://myusername:mypassword@www.testinst.testing-board.com/“ einfach durch „http://www.testing-board.com/“ ersetzen.
Hallo Sebastian!
hier mein Source Code
String pathToChromeDriver = „.//ChromeDriver//chromedriver.exe“;
System.setProperty(„webdriver.chrome.driver“, pathToChromeDriver);
ChromeDriver Chrom1 = new ChromeDriver();
Chrom1.manage().window().maximize();
// Chrom1.get(„http://www.testinst.testing-board.com/“);
//WebElement user_ele = Chrom1.findElement(By.id(„user_login“));
//WebElement pass_ele = Chrom1.findElement(By.id(„user_pass“));
//WebElement login_button = Chrom1.findElement(By.id(„wp-submit“));
//user_ele.sendKeys(„Christoph-Droege“);
//pass_ele.sendKeys(„mypassword“);
//login_button.click();
Es tritt ein Fehler bei //WebElement user_ele = Chrom1.findElement(By.id(„user_login“));
auf.
user_login und user_pass habe ich von der Login / Register page. Ebenso der Login Button.
Was ist falsch? Key „mypassword“ ist natürlich der Platzhalter für mein richtiges Password.
Hi Christoph,
ein paar Rückfragen:
Du bist weiter auf der Testinstanz unterwegs, wo du ja am HTTP Auth nicht vorbei kommst, ist das gewollt?
// Chrom1.get(„http://www.testinst.testing-board.com/“);
-> Was genau ist deine Erwartungshaltung bzw. was versuchst du da genau?
-> Was soll passieren und wie genau ist die Fehlermeldung?
Mir fehlen mehr Informationen um zu verstehen, was du da überhaupt vor hast.
Kurzes Feedback: Dass du unter der URL nicht weiter kommst, wundert mich nicht, denn ich erklärte ja, dass du da wegen dem HTTP Basic Auth nicht weiter kommen wirst.
Schreibe am besten mal bisschen ausführlicher, was genau du ausprobieren magst, was du alles schon probiert hast und eben die genaue Fehlermeldungen. Du solltest natürlich erst mal ein wenig ausprobieren es selbst zu lösen, also schreibe auch gerne mal was du versucht hast den Fehler zu beheben, dann verstehe ich auch noch besser was du vor hast.
Hallo Sebastian,
ich möchte mich auf der Seite „Login/Register“ über Java-Source Code einloggen. Wenn ich auf der Seite „Login/Register“ bin, kann ich mich mit user und passwort einloggen. Oben rechts erscheint dann mein Name.
Dieses Verhalten möchte ich auch für die Java-Scripte (*.java) erreichen.
Wenn ich den Java-Code starte, erscheint das Login-Fenster. Dort kann ich user und password angeben, nach dem Anmelden erscheint dann das Login-Fenster erneut.
So 100% sicher bin ich mir mit folgenden Lösungsvorschlag nicht, aber ich versuche gerne mal:
Chrom1.get(„http://www.testinst.testing-board.com/“);
… ersetzen durch…
Chrom1.get(„http://www.testing-board.com/“);
Falls das die Lösung ist, schau dir auch nochmal meinen ersten Kommentar oben an, um die Lösung zu verstehen. Denn dann ist das mit der HTTP-Auth geschützten Subdomain noch unklar. Ich denke zumindest, es macht Sinn das zu verstehen. Mit „Login-Fenster“ meinst du dann wahrscheinlich dann das Browser-pop-up des HTTP Auth. Sorry falls ich falsch liege, dann habe ich es komplett falsch verstanden.
Weiterhin sehe ich in deinem Code Ausschnitt oben aber auch nicht, dass du zur Login Seite gehst. Du rufst die Hauptdomain auf …
// Chrom1.get(„http://www.testinst.testing-board.com/“);
… und wenn ich es richtig sehe, suchst du dann direkt die Elemente zum Login
//WebElement user_ele = Chrom1.findElement(By.id(„user_login“));
Da fehlt dann noch das Aufrufen der Login-Seite dazwischen.
Du musst dir vorstellen, dass Selenium deinen Browser steuert. Alles was du im Browser ansteuern kannst, mit deiner Maus und Tastatur, kann Selenium machen. Sobald du Sachen versuchst zu klicken oder zu finden, die du gar nicht siehst, geht es nicht.
Gegebenenfalls liege ich aber falsch und du beherzigst das schon alles und hast das schon in deinem aktuellen Selenium Skript korrigiert. Sprich, falls du das alles schon korrekt bei dir hast und unsere „Login-Register“ Page kommt nach erfolgreichen Login nochmal, sag mir mal, ob du das auch nachstellen kannst, wenn du deinen normalen Browser ohne Selenium nutzt. Also sprich, ob du auch manchmal Login-Probleme auf der Login-Register-Page hast, wenn du dich ganz normal einloggst. Theoretisch könnte auch was mit dem WordPress Login schief laufen.
Nebenbei: Hast du das Selenium Tutorial 1 schon mal so wie es ist durch gemacht und haben die Code-Auszüge funktioniert? Da ist ja auch ein kompletter Login Ablauf ganz am Ende. Trotzdem ist wichtig die einzelnen Abschnitte zu verstehen.
Sag gerne ob du damit nun weiter kommst. Viel Spaß!