Hinzufügen von Java-variable zu xpath
Ist es möglich, eine definierte Java-String-variable in einen xpath-Ausdruck? Hier ist etwas code, damit das klar ist:
String newUser = "NewUser123";
driver.findElement(By.xpath("//td[normalize-space(text())=**newUser**]/a")).click();
Xpath, sollte mit der Variablen newUser, aber ich weiß nicht wie.
- Mögliche Duplikate von Java - Einschließlich der Variablen, die innerhalb von Zeichenfolgen?
- Warum nach unten Stimmen? Seine eine berechtigte Frage!
Du musst angemeldet sein, um einen Kommentar abzugeben.
Ja, wenn Sie sich für Java entscheiden, wie Ihre Programmiersprache während der Arbeit mit Selen, können Sie alle Dinge, die logisch möglich in Java.
Nehmen, Ihrem Beispiel zu xpath ist eine Funktion, die string-Argumente. So Wie in Java verkettet mehrere strings mit
+
. Sie können das gleiche tun hier.In ähnlichen Situationen, die ich extrahieren Sie die lookup zu einer Konstante in der Klasse, und verwenden Sie die String.format utility zum einfügen der variable(N), wo ich es brauche. Beachten Sie die Verwendung von %s im Beispiel konstant USER_XPATH unten.
Ich denke, das ist besser für die Lesbarkeit und die Wartung als die inline-Verkettung option, aber beide das Ziel erreichen wird.
Dann können Sie die Verwendung von String.format legen Sie die variable, die Sie wollen:
%s
enthalten muss zwischen Anführungszeichen (einfache oder doppelte). Sonst funktioniert es nicht. Ich meine, es sollteprivate static final USER_XPATH ="//td[normalize-space(text())='%s']/a";
Können Sie versuchen, den folgenden code:
Im Falle dass, wenn Ihr eine Nummer in jeder Schleife die Tabelle geschrieben werden kann, wie
String sCol = "1";
driver.findElement(By.xpath("/html/body/div[1]/div[2]/div/div[2]/article/div/table/tbody/tr["+sRow+"]/td["+sCol+"]")).getText();
Behandlung der xpath-wie jeder andere string-Verkettung oder interpolation in Java