java - 无法在 Selenium Webdriver 中动态更改元素的值

标签 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(); 

但是我不明白为什么会这样,谁能帮帮我。

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/

相关文章:

java - Java 中的对象复制

api - 集成测试 : Mock external API vs. 使用外部 API 沙盒

angularjs - 当我使用 Windows 平台时,有没有办法用 Protractor 进行 headless 测试?

firefox - 如何使用 webdriver 在 Firefox 中禁用阅读器 View

在 Netbeans 中连接 azure 数据库的 Java 程序出现错误

java.io.FileInputStream 仅从同步块(synchronized block)内部访问私有(private) volatile 变量 'closed'。为什么?

Java 搜索包含双字母的单词

java - 是否可以在 selenium 测试中访问 java bean?

database - 为测试生成唯一的模式名称

selenium - PhantomJS 中的 webdriver 显示大小