Как обеспечить цикл для символа от A до Z, который передается в XPath после этого, может быть, нам не нужно писать XPath несколько раз - PullRequest
0 голосов
/ 13 января 2019

Есть ли решения для 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);          
}

Ответы [ 2 ]

0 голосов
/ 15 января 2019

Сделайте динамический селектор 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();
}
0 голосов
/ 13 января 2019

Использовать Формататор строки - определить «шаблон» с фиксированной структурой строки и спецификатором формата.
Предполагая, что вы хотите заменить "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();
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...