2012-10-18 6 views
6

Angenommen, ich schreibe Selenium-Tests für eine öffentliche Bibliotheks-Website. Die Website hat eine Login-Seite. Nachdem ich mich auf der Website eingeloggt habe, sehe ich eine Liste von Büchern. Ich kann auf einen der Links der Buchtitel klicken. Nach einem Klick auf einen Buchtitel Link auf, wird eine Zusammenfassung des Buchs auf dem Bildschirm dispalyed, und die URL ist so etwas wie:Gibt es eine Möglichkeit, den URL-Text mit Selenium Webdriver zu ändern?

http://somePublicLibrary.com/Books/e6a9bb54-da25-102b-9a03-2db401e887ec?title=BookTitle

Wenn ich die GUID in der URL zu einem gewissen ungültig ändern Führen Sie dann anstelle der Zusammenfassung eine Meldung aus:

Keine Zusammenfassung gefunden.

Ich möchte einen automatisierten Test für dieses Szenario erstellen.

Ich versuche, Methoden wie changeUrlGuid(), getUrlGuid() usw. zu schreiben. Aber wie kann ich den URL-Text mit Selenium Webdriver bekommen?

Antwort

8

Sie können die aktuelle URL der unter Verwendung getCurrentUrl() -Methode geladen Seite erhalten.

String url = webdriver.getCurrentUrl(); 

Dann müssen Sie nur alte Guid durch eine neue Guid ersetzen.

int numOfChars = 36; 
int posOfQuestionMark = url.indexOf("?"); 
String newGuid = "..."; // put new/wrong guid value here 
String newUrl = url.substring(0, posOfQuestionMark-numOfChars)+newGuid+url.substring(posOfQuestionMark); 

--Edit--

nun diese neue URL in den Browser laden.

webdriver.get(newUrl); 
+2

Vielen Dank !!! Du hast mein Leben gerettet!! – Maya

+0

Danke für dieses Stück Code, machte meine Arbeit einfach, ich hatte ähnliche Frage, wo ich einen Teil des Codes ersetzen musste und dann eine Webdriver-Anfrage stellen. – Prasad

2

Versuchen Sie Folgendes:

driver.current_url