java - 如何在多个文本框中插入值并按顺序更新其中的值?

标签 java selenium webdriver

我的java代码

package com.ej.zob.modules;

import java.util.List;

import org.openqa.selenium.By;
import org.openqa.selenium.WebElement;

public class Revenue {
public void Execute(String value)
 {
       LaunchApplication.driver.findElement(By.linkText("VIEW")).click();
       LaunchApplication.driver.findElement(By.linkText("REVENUE")).click();
       LaunchApplication.driver.findElement(By.name("click")).click();
       LaunchApplication.driver.findElements(By.xpath("//a[contains(@id,'Edit_')")).click();

       List<WebElement> a = LaunchApplication.driver.findElements(By.xpath("//input[@type='text']"));
       List<WebElement> b = LaunchApplication.driver.findElements(By.xpath("//input[@value='Update']"));



       for(WebElement elem_1:a){
           elem_1.clear();            
           elem_1.sendKeys(value);
           }
       for(WebElement elem_2:b)
       {
           elem_2.click();

       }



       }


}

}

我的 HTML

<tr>
<td>Arunachal Pradesh</td>
<td>
<div>
<input id="1_1" type="text" value="44155" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_1")" style="width:60px">
</div>
</td>
<td>
<div>
<input id="1_2" type="text" value="79103" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_2")" style="width:60px"> 
</div>
</td>
<td>
<div>
<input id="1_3" type="text" value="11639" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_3")" style="width:60px">
</div>
</td>
<td>
<div>
<input id="1_4" type="text" value="22004" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_4")" style="width:60px">
</div>
</td>
<td>
<div>
<input id="1_5" type="text" value="65958" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_5")" style="width:60px">
</div>
</td>
<td>
 <div>
<input id="1_6" type="text" value="76837" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_6")" style="width:60px">
</div>
</td>
<td>
<div>
<input id="1_7" type="text" value="3642" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_7")" style="width:60px">
</div>
</td>
<td>
<div>
<input id="1_8" type="text" value="84573" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_8")"  style="width:60px">
</div>
</td>
<td>
<div>
<input id="1_9" type="text" value="3438" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_9")" style="width:60px">
</div>
</td>
<td>
<div>
<input id="1_10" type="text" value="32859" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_10")" style="width:60px">
</div>
</td>
<td>
<div>
<input id="1_11" type="text" value="45793" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_11")" style="width:60px">
</div>
</td>
<td>
<div>
<input id="1_12" type="text" value="95662" style="width:50px" name="U1">
<br>
<input type="button" value="Update" onclick="fnUpdateRevenue("1_12")" style="width:60px">
</div>
</td>
<td>
<a id="Edit_1" href="#" onclick="fnEditRevenue("1");" style="visibility: hidden;">Edit</a>
|
<a id="Hide_1" href="#" onclick="fnHideRevenue(1);" style="visibility: hidden;">Hide</a>
|
<a id="Show_1" href="#" style="visibility:hidden" onclick="fnShowRevenue(1);">Show</a>
</td>

让我们首先了解我的应用程序的功能。在我的网页中,有超过 26 行和 12 列。每行包含 12 个文本框和 12 个按钮,还有一个“编辑”按钮。当单击“编辑”按钮时,将显示文本框并且“更新”按钮将打开。这是我的网页的功能。

我想要做的是,当单击“编辑”按钮时,应在文本框中输入一些值,然后单击“更新”按钮。这应该发生在每一行。通过使用上面的代码,我可以单击单个“编辑”按钮并仅更新单行。

有人可以帮忙吗?

最佳答案

它仅更新单行,因为您尚未根据列名称进行识别,请尝试此 -

 WebElement table = driver.findElement(By
            .cssSelector("table[id='yourtableid']"));
List<WebElement> col = table.findElements(By.tagName("td"));
for (int cnum = 0; cnum < col.size(); cnum++) {
WebElement text = driver.findElement(By.xpath("//input[@type='text']"));
text.clear();
text.sendKeys(value);
WebElement update = driver.findElement(By.xpath("//input[@value='update']"));
update.click();
}    

关于java - 如何在多个文本框中插入值并按顺序更新其中的值?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30435204/

相关文章:

java - 在单词上显示工具提示 - 在搜索文本文件的含义后

java - 处理水平滚动

python - Selenium python无法向下滚动

java - 在 selenium webdriver 中从一个选项卡导航到另一个选项卡后,按钮的 xpath 不起作用,如何使其工作?

python - 可以进行 XHR 调用并使用 Selenium 呈现输出吗?

java - 查找匹配多个文本的 Xpath

java - Android 错误 : Attempt to invoke virtual. .. setOnClickListener(android.view.View$OnClickListener)' 空对象引用

java - Gradle 无法解析 sikulixapi

android - 无法从同一局域网内的远程计算机访问 Android 设备

java - Vert.x 代理服务 - 处理不同机器上的路由