如何使用webdriver在具有相同id,class,xpath和css的列的表中输入数据?

时间:2014-01-21 09:45:42

标签: selenium xpath

我有一个用于输入名称,电子邮件ID和关系的表,但所有列都具有相同的ID,相同的类,同名,xpath和css。那么如何编写代码来在列中添加数据。 我的意思是“Name”列下的所有行都具有相同的id,相同的类,同名,xpath和css。因此,当我对其进行编码时,名称将在第一行输入名称,但不会在第二行中输入。 名称字段的第一列的HTML是

<input type="text" value="" title="Enter name of the user" name="Name" id="Name" class="required wid220"></pre>

“名称”字段的第二列的HTML是

<input type="text" value="" title="Enter name of the user" name="Name" id="Name" class="wid220 validEntry">

名称字段的第三列的HTML是

<input type="text" value="" title="Enter name of the user" name="Name" id="Name" class="wid220 validEntry">

2 个答案:

答案 0 :(得分:2)

如果您可以与此应用程序的开发人员交谈,那么您需要强烈抗议这是一个糟糕的应用程序开发标准。来到您的查询,您可以使用列xpath来区分不同的输入...例如: -

//table/tbody/tr[1]/td[1]/input for first column;  

//table/tbody/tr[1]/td[2]/input for second and so on.....

tr - 表示行,td - 表示列

如果表具有id或属性,您可以像这样使用它,

//table[@id='value']/tbody/.....

答案 1 :(得分:0)

public static void EnterInTable(int rowNumber, string value)
{
    // We don't care about the column as long as you have one text field here
    string query = String.Format("//table[*some-id*]//td[{0}]//input", rowNumber);
    driver.findElement(:xpath, query).sendKeys = value;
}