我从表中获取一个xpath,下面是一个示例。
//*[@class='example']//table//tr[1]//td[2].
在我的一种情况下,我想添加带有+1的tr
值,它将在运行时将tr
计为tr[2]
。那么有什么办法可以做到这一点?我已经尝试过了:
//*[@class='example']//table//tr[1+1]//td[2]
//*[@class='example']//table//tr[(1+1)]//td[2]
答案 0 :(得分:0)
希望这会有所帮助:
代码:
import org.openqa.selenium.By;
import org.openqa.selenium.NoSuchElementException;
import org.openqa.selenium.WebDriver;
import org.openqa.selenium.htmlunit.HtmlUnitDriver;
public class TestExp {
String xpathStr ="//*[@class='example']//table//tr[%1s]//td[2]";
WebDriver driver = new HtmlUnitDriver();
public static void main(String[] args) {
TestExp testExp = new TestExp();
testExp.clickBtn("1");
testExp.clickBtn("2");
}
public void clickBtn(String index){
try {
String element = String.format(xpathStr,index);
System.out.println(element);
driver.findElement(By.xpath(element));
}catch (NoSuchElementException ex){
System.out.println("Element is not found");
}
}
}
结果:
答案 1 :(得分:0)
通常应该记住使用div
for division,因为/
是保留字符,它会选择root node
演示:
有关更多XPath提示和技巧,请参见XPath Operators & Functions
使用tables的Table类使用HTML HtmlElements framework更容易