2010-06-14 117 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