2013-04-26 83 views
1

我的應用程序具有包含多行的網格。行具有編輯選項,該選項加載另一個頁面以更新個人信息。行編輯圖標標識爲:如何在selenium中使用其表格ID找到網頁元素的ID

"ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00_ctl20_EditButton" 

如果我們單擊此圖標,將打開個人頁面。個人頁面中的元素以基於編輯圖標ID的 "ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00_ctl21_txtFirstName"開頭。

問題是,我可以點擊帶有表格ID概念的編輯圖標。命令是:

selenium.click("//table[@id='ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00'] 
//tr[td[.='"kannan"']]/td/input[@type='image']"); 

但我無法獲得編輯圖標的ID。

如果我得到編輯圖標的編號,我可以通過在編輯圖標ID中添加「1」來輕鬆更改個人頁面元素編號。

我該如何解決這個問題?

+2

這不是WhatsApp的,請正確填寫。 – 2013-04-26 07:59:43

回答

0

只能使用ID

selenium.click("ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00"); 
0

,你可以這樣做:

public ArrayList<String> IdsOfEditOption() 
{ 
    WebElement table =driver.findElement(By.id("ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00")); 
    WebElement tbody=table.findElement(By.tagName("tbody")); 
    List<WebElement> rows=tbody.findElements(By.tagName("tr")); 
    ArrayList<String> ListOdIds=new ArrayList<>(); 

    for(int i=0;i<rows.size();i++) 
    { 
    WebElement EditOption = tbody.findElement(By.xpath("//table[@id='ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00']/tbody/tr["+(i+1)+"]/td")); 
    String EditOptionId=EditOption.getAttribute("id"); 
    ListOdIds.add(EditOptionId); 
    } 

    return ListOdIds; 
} 
+0

在這首先我們找到表格,然後是它的tbody,然後是tbody標籤中的所有行。然後我們在每一行中找到編輯選項按鈕(我們假設編輯選項按鈕出現在第一列,這就是爲什麼我們在最後使用td的原因,如果它存在於2或3列中將其更改爲td [2]或td [3])。然後我們找到一個編輯選項,我們得到它的屬性ID,然後將其存儲到數組列表中。這樣我們將有編輯選項按鈕的所有id的列表。 – Praveen 2014-06-19 07:04:51

相關問題