2010-06-14 120 views
2

我有一个名为UserManagement的表,其中包含有关用户的信息。每当创建新用户时,都会更新此表。如果我创建两个用户,那么我需要检查两个用户是否实际创建。表包含ID,UserName,FirstName,LastName,Bdate..ctc。这里ID将自动生成。
我正在运行Selenium-TestNG脚本。使用Selenium时,如何获取我创建的两个用户的用户名?我是否需要遍历表?如果是的话如何迭代表格?如何使用硒迭代表格?

回答

2

使用ISelenium.GetTable(string)获取所需表格单元格的内容。例如, selenium.GetTable("UserManagement.0.1"); 将返回表的第一行和第二列的内容。然后,您可以声明表中正确的用户名或用户名。

+0

我试图使用它同在一个循环为selenium.GetTable(“UserManagement.i.1”),我想通过循环迭代,但它不会work..instead selenium.GetTable(“UserManagement.0.1 “)它的工作原理..很奇怪为什么 – sam 2011-01-16 15:30:05

+0

@sam我迭代了什么值? – 2011-01-16 18:50:58

+0

以下是我正在尝试做的事 我是一个numof行的计数器。 对于i为整数= 1要NumOfRows 昏暗strTableColumn作为字符串= selenium.GetTable( “Group.i.1”) 如果(strTableColumn = PWORD)然后 返回值= I IsFound =真 退出对于 结束如果 Next – sam 2011-01-17 08:16:13

1

获取可变行数

使用Selenium.getxpathcount(\ @ ID = fjsfj \ TD \ TR“)行的计数给所述列数以可变

例:

int colcount = 5; 

给的REQ,即新用户

String user1 = "ABC" 

for(i = 0;i <=rowcount;i++) 
{ 
    for(j=0;j<=colcount;j++) 
    { 
     if (user1==selenium.gettable("//@[id=dldl/tbody" +i "td"+j)) 
     { 
     system.out.println(user1 + "Inserted"); 
     break; 
     } 
     break; 
    } 
} 
+0

我尝试了与您提供的相同解决方案。但是,如果你使用一个静态的行,它不会使用xpath,而是使用我的(计数器)。其他可能的解决方案 – sam 2011-01-16 15:28:48

1

获取使用的行数:

int noOfRowsInTable = selenium.getXpathCount("//table[@id='TableId']//tr");

如果你想要得到的用户名是在固定的位置,假设在第2位,则每行迭代下面给出:

selenium.getText("xpath=//table[@id='TableId']//tr//td[1]");

注:我们可以使用相同的程序找到该表中的列数

int noOfColumnsInTable = selenium.getXpathCount("//table[@id='TableId']//tr//td");

0

一般来说,这样的事情?

table = @browser.table(:id,'tableID') 
table.rows.each do |row| 
    # perform row operations here 
    row.cells.each do |cell| 
     # do cell operations here 
    end 
end