当我运行这段代码时,编译器抛出了一个运行时异常,
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 之前,我认为这不是一个好习惯。
关于java - 无法在 Selenium Webdriver 中动态更改元素的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23885014/