Java 无法在Selenium Webdriver中将值动态更改为元素

Java 无法在Selenium Webdriver中将值动态更改为元素,java,testing,selenium,selenium-webdriver,ui-automation,Java,Testing,Selenium,Selenium Webdriver,Ui Automation,当我运行此代码时,编译器会引发运行时异常 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(); 但我不明白为什么会这样,有

当我运行此代码时,编译器会引发运行时异常

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;
对于(j=1;j<10;j++)
{
字符串ExistUser=driver.findElement(By.xpath(“./*@id='UserBody']/tr[j]/td[1]”);
//字符串值=ExistUser.getAttribute(“值”);
系统输出打印项次(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);

     }
      }
if(driver.findElements(By.xpath(“./*[@id='UserBody']]/tr[1]/td[1]”)。size()!=0)
{
int j;
对于(j=1;j<10;j++)
{
字符串ExistUser=driver.findElement(By.xpath(“./*[@id='UserBody']/tr[“+j+”]/td[1]”);
//字符串值=ExistUser.getAttribute(“值”);
系统输出打印项次(ExistUser);
}
}
当你想要提到一个变量时,也需要放置“+”符号

&


并删除XPATH之前的“.”,我认为这不是一个好习惯。

这是因为您输入的是文本字符串
j
,而不是
j
变量的内容

类似这样的方法会奏效:

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

都德,你在用变量。是的,你说对了吗code@nitinchawda是的,我喜欢它thanks@ShivaRoy欢迎如果你找到了解决办法,接受答案。这样其他人也能知道答案。