Когда я запускаю этот код, 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);
}
}
Используйте следующий код:
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, я думаю, что это не очень хорошая привычка.
Это происходит из-за того, что вы вставляете литеральную строку j
в отличие от содержимого переменной j
.
Что-то вроде этого будет работать:
String ExistUser = driver.findElement(By.xpath(".//[@id='UserBody']/tr[" + j + "]/td[1]")).getText();