1

私のアプリケーションには、複数の行を持つグリッドがあります。行には、別のページをロードして個人情報を更新する編集オプションがあります。行編集アイコン ID は次のとおりです。

"ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00_ctl20_EditButton"

このアイコンをクリックすると、個人用ページが開きます。個人ページの要素は "ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00_ctl21_txtFirstName"、編集アイコン ID に基づいて開始されます。

問題は、テーブル ID の概念で編集アイコンをクリックできることです。コマンドは次のとおりです。

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

しかし、編集アイコンのIDを取得できませんでした。

編集アイコンの ID を取得すると、編集アイコン ID に「1」を追加することで、個人ページ要素の ID を簡単に変更できます。

この問題を解決するにはどうすればよいですか?

4

2 に答える 2

0

IDのみを使用

selenium.click("ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00");
于 2013-07-30T06:29:33.987 に答える
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;
}
于 2014-06-19T07:03:59.543 に答える