是否可以将已定义的Java String变量添加到xpath-expression中?以下是一些明确的代码:
String newUser = "NewUser123";
driver.findElement(By.xpath("//td[normalize-space(text())=**newUser**]/a")).click();
xpath应该与变量newUser一起使用,但我不知道如何。
答案 0 :(得分:4)
是的,当您在使用selenium时选择Java作为编程语言时,您可以执行Java中逻辑上可能的所有事情。
举个例子,xpath是一个带字符串参数的函数。所以在Java中我们使用+
连接多个字符串。你可以在这里做同样的事情。
String newUser = "NewUser123";
driver.findElement(By.xpath("//td[normalize-space(text())='"+newUser+"']/a")).click();
答案 1 :(得分:1)
在类似情况下,我将查找提取到类中的常量,并使用 String.format 实用程序将变量插入到我需要的位置。请注意在下面的示例常量 USER_XPATH 中使用%s 。
我认为这对于可读性和维护比内联串联选项更好,但两者都将实现目标。
/** Format string for the ### xpath lookup.*/
private static final String USER_XPATH ="//td[normalize-space(text())=%s]/a";
然后你可以使用String.format插入你想要的变量:
private void myMethod() {
String newUser = "NewUser123";
String fullXpath = String.format(USER_XPATH, newUser);
driver.findElement(By.xpath(fullXpath)).click();
}
答案 2 :(得分:1)
Xpath
(带有变量和空格)
String CasesCount = Utility.WebDriverHelper.Wdriver.findElement
(By.xpath("//button[text()=' "+tabname+"']/span")).getText();
删除文本中的这种特殊花括号()
CasesCount = CasesCount.replaceAll("\\(", "").replaceAll("\\)","");
答案 3 :(得分:0)
您可以尝试以下代码:
String newUser = "NewUser123";
driver.findElement(By.xpath("//td[normalize-space(text())=" + newUser + "]/a")).click();
答案 4 :(得分:0)
如果它在任何循环表中是一个数字,则可以写为
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();
答案 5 :(得分:-1)
像处理Java中的任何其他字符串连接或插值一样处理xpath