2016-09-22 2 views
1

Selenium für Chrome und Firefox, Codierung in C#, wird nicht auf die neue Registerkarte wechseln, die während meines Automatisierungstests geöffnet wird. Ich glaube nicht, dass es sich auf den neuen Tab offen legt, denn wenn ich mein Programm vollständig ausführe, erhalte ich den Fehler: "out of range" Ausnahme und "Index war außerhalb des Bereichs. Muss nicht negativ sein und weniger als die Größe von die Sammlung."C# Selenium Keine neuen Fenstergriffe beim Öffnen einer neuen Registerkarte in Chrome und Firefox

Ich habe versucht, mit:

driver.SwitchTo().Window(driver.WindowHandles.Last()); 

und

driver.SwitchTo().Window(driver.WindowHandles[1]); 
driver.SwitchTo().Window(driver.WindowHandles[0]).Close(); // close the first tab 
System.Threading.Thread.Sleep(5000); //Wait 5 seconds just in case 
driver.SwitchTo().Window(driver.WindowHandles[1]); //Makes sure I'm on the correct tab 

aber es gibt kein Glück. Wenn ich die erste Registerkarte nicht schließe, erhalte ich den Fehler: "NoSuchElementException: Element kann nicht gefunden werden: {Methode ...}", was ich für richtig halte, weil der Fokus immer noch auf der ersten Registerkarte liegt. Jede Hilfe würde sehr geschätzt werden. Vielen Dank.

+0

Sobald Sie 'tab [0]' geschlossen haben, wird nicht die alte 'Registerkarte [1]' zur neuen Registerkarte [0] '? – sokkyoku

+0

Ja, das habe ich nicht bemerkt. Vielen Dank. Aber jetzt ist mein einziges Problem, dass der XPath, den ich als Eingabe habe, nicht auf der neuen Registerkarte gefunden werden kann. Das ist ein anderes Thema, das ich herausfinden werde. Nochmals vielen Dank – CRich

+0

Wenn das Problem gelöst ist Ihre Frage erwähnt, kann ich es als eine Antwort für Sie zu akzeptieren. – sokkyoku

Antwort

0

Sobald Sie tab[0] geschlossen haben, die alte tab[1] wird die neue tab[0], so dass Sie tab[0] Schalt werden sollte.

Selenium arbeitet im Hintergrund, so dass das Fenster nicht im Fokus sein muss, während es läuft. Dies bedeutet auch, dass Selenium niemals den Fokus zurück auf das Browserfenster ändert. Wenn Sie das Fenster sehen, während der Code ausgeführt wird, sollten Sie in der Lage sein, die Tabs des Browsers zu sehen.

+0

Es tut mir leid, ich hätte meine Frage besser formulieren sollen. Was ich eigentlich fragen wollte: Ändert der neue Tab/das neue Fenster den Fokus von der alten Registerkarte/dem alten Fenster, wenn der Treiber mit der Funktion "driver.switchTo" auf diese Schaltfläche umschaltet? – CRich

+0

Ja, das ist, was die Funktion ist;) – sokkyoku

+0

Ok, danke. Ich denke, dass mein XPath dann falsch ist. Vielen Dank für Ihre Zeit, die mir hilft und antwortet :) – CRich

Verwandte Themen