Невозможно динамически изменить значение элемента в Selenium Webdriver

1

Когда я запускаю этот код, Exception вызывается компилятором,

String ExistUser = driver.findElement(By.xpath(".//*@id='**UserBody']/tr[j]**/td[1]")).getText(); 

в то время как когда я изменил j на 1, я получаю вывод

String ExistUser = driver.findElement(By.xpath(".//*@id=**'UserBody']/tr[1]**/td[1]")).getText(); 

но я не могу понять, почему это происходит, может кто-нибудь мне помочь.

if (driver.findElements(By.xpath(".//*[@id='UserBody']/tr[1]/td[1]") ).size()!= 0)
{
   int j;
   for (j=1 ; j< 10; j++)
       {
         String ExistUser = driver.findElement(By.xpath(".//*@id='UserBody']/tr[j]/td[1]")).getText();
         //String value = ExistUser.getAttribute("value");
         System.out.println(ExistUser);

       }
}
  • 0
    чувак .. мы используем переменную. Вы не правильно указали свой код
  • 0
    @nitinchawda да ... я понял ... и спасибо
Теги:
testing
selenium
selenium-webdriver
ui-automation

2 ответа

1
Лучший ответ

Используйте следующий код:

 if (driver.findElements(By.xpath(".//*[@id='UserBody']/tr[1]/td[1]") ).size()!= 0)
      {
         int j;
     for (j=1 ; j< 10; j++)
     {
         String ExistUser = driver.findElement(By.xpath(".//*[@id='UserBody']/tr["+j+"]/td[1]")).getText();
         //String value = ExistUser.getAttribute("value");
         System.out.println(ExistUser);

     }
      }

Когда вы хотите упомянуть переменную, вам нужно также поместить символ "+".

&

И удалите '.' до XPATH, я думаю, что это не очень хорошая привычка.

  • 0
    спасибо и я получаю это ..
  • 0
    @ShivaRoy Добро пожаловать. Если вы нашли решение, примите ответ. Так что другие тоже могут знать ответ.
Показать ещё 1 комментарий
0

Это происходит из-за того, что вы вставляете литеральную строку j в отличие от содержимого переменной j.

Что-то вроде этого будет работать:

String ExistUser = driver.findElement(By.xpath(".//[@id='UserBody']/tr[" + j + "]/td[1]")).getText();

Ещё вопросы

Сообщество Overcoder
Наверх
Меню