当我运行此代码时,编译器会抛出运行时异常,

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之前,我认为这不是一个好习惯。

10-08 13:11