有没有针对XPath的解决方案?
我想从字符"A"遍历到"Z",但问题是哪个是 XPath...
所以我认为我们通过循环解决这个问题,但我不知道如何为此提供 s 循环......对于代码优化,我们不需要多次编写 XPath。
我已经循环尝试过,但它不起作用。
WebElement A = driver.findElement(By.xpath("//a[text()='**A**']"));
act.click(A).perform();
char c = 'A';
for (c='A';c<='Z';c++)
{
String s = Character.toString(c);
}
使用字符串格式化程序 - 定义一个具有字符串固定结构和格式说明符的"模板"。
假设您要替换"**A**"
文本中的"A"
:
String templ = "//a[text()='**%s**']";
for (char c='A'; c<='Z'; c++){
WebElement A = driver.findElement(By.xpath(String.format(templ, c)));
/* if you want to see the constructed string/locator:
System.out.println(String.format(templ, c)); */
act.click(A).perform();
}
让 xpath 选择器动态化,这是示例逻辑,稍后可以改进,试试这个:
String[] letters = {"A","B","C"....};
Actions action = new Actions(driver);
for (int i=0; i<letters.length(); i++)
{
WebElement element = driver.findElement(By.xpath("//a[text()="**" + letters[i] + "**"]"));
action.moveToElement(element).click().perform();
}