0

Ich habe vor kurzem einen Job angefangen, automatisierte Tests mit Selenium WebDriver und Java zu schreiben, aber meine früheren Erfahrungen waren mit Telerik Test Studio und C#. Der Übergang verläuft größtenteils sehr gut, aber ich versuche einen Weg zu finden, datengetriebene Tests in Selenium WebDriver einzurichten, ähnlich wie sie mit der Registerkarte Lokale Daten von Test Studio eingerichtet werden können (abzüglich der eingebauten UI, offensichtlich).Wie kann ich in Selenium Webdriver mit Java auf Excel-Spalten anhand ihrer Header-Namen statt Indizes/Schlüssel verweisen?

Ich habe mein Framework mit Apache POI eingerichtet, so dass ich Excel-Dateien für meine Daten verwenden kann, wobei jede Zeile ein Szenario darstellt, das aus verschiedenen Variablen besteht, die durch die Spalten dargestellt werden. Das Problem ist, dass Spalten, die dazu neigen, im Laufe der Zeit hinzugefügt oder neu angeordnet zu werden, eine Möglichkeit haben, auf jede Spalte anhand der Namenszeichenfolge in der Kopfzeile der obersten Zeile und nicht anhand ihres Schlüssels oder Indexes zu verweisen.

Test-Studio macht diese extrem einfach, dass, wenn Sie Ihre Tabelle an den lokalen Registerkarte Daten kopiert haben, können Sie leicht an die Spalten von ihrem Header-Namen mit etwas entlang der Linien von verweisen ...

if (...LocalData.PaymentMethod = "CreditCard")... 

... wobei PaymentMethod der Name der Spalte und "CreditCard" ein potenzieller Wert in einer Zelle dieser Spalte ist.

Kennt jemand eine Möglichkeit, auf Spalten über ihre Header-Namen-Strings mit Java in Selenium WebDriver zu verweisen? Jede Hilfe würde sehr geschätzt werden. Vielen Dank!

+0

ich auch, dass ich beachten sollte muss nicht unbedingt so sauber von einem Weg sein, auf die Spalte zu verweisen, wie Test Studio zur Verfügung stellt. Während das toll wäre, ist meine Unfähigkeit, auf die Spalte durch ihren Header-String-Inhalt zu verweisen, der Kern meines Problems. – megamahan

Antwort

1

Ich denke, Sie sind Selenium mit Daten aus Excel-Blatt mess. Selenium kann es nicht - Apache POI tut es. Also, ich werde die POI-Nutzung beantworten.

Sie können Spaltenüberschriften mit CellReference Utility-Klasse und Spaltenindex abrufen:

String columnName = CellReference.convertNumToColString(columnIdex); 

Wenn Sie notwendige Spalte gefunden haben, können Sie seine Zellen lesen:

for(Row r : sheet) { 
    Cell c = r.getCell(columnIdex); 
    // do what you need 

} 
+0

Danke, aber wie ich schon erwähnt habe benutze ich bereits Apache POI. Ihr Vorschlag verwendet den Index der Spalte, den ich speziell zu vermeiden versuche, da sich der Index ändert, wenn Spalten hinzugefügt oder neu angeordnet werden, was manuelle Aktualisierungen der Indizes vieler anderer Spalten erfordert. Ich habe viele Spalten. – megamahan

Verwandte Themen