我的应用程序有一个包含多行的网格。行具有编辑选项,该选项加载另一页以更新个人信息。行编辑图标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。
如何解决此问题?
答案 0 :(得分:0)
仅使用ID
selenium.click("ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00");
答案 1 :(得分: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;
}