Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/353.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 如何在selenium中使用web页面元素的表id查找该元素的id_Java_Selenium - Fatal编程技术网

Java 如何在selenium中使用web页面元素的表id查找该元素的id

Java 如何在selenium中使用web页面元素的表id查找该元素的id,java,selenium,Java,Selenium,我的应用程序有一个包含多行的网格。行具有编辑选项,可加载另一页以更新个人信息。行编辑图标id为: "ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00_ctl20_EditButton" 如果单击此图标,个人页面将打开。个人页面中的元素以开头 ctl00\u内容占位符1\u grdeEmployeeMaster\u ctl00\u ctl21\u txtFirstName,基于编辑图标id 问题是我可以单击带有表id概念的编辑图标。命令是: se

我的应用程序有一个包含多行的网格。行具有编辑选项,可加载另一页以更新个人信息。行编辑图标id为:

"ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00_ctl20_EditButton"
如果单击此图标,个人页面将打开。个人页面中的元素以开头 ctl00\u内容占位符1\u grdeEmployeeMaster\u ctl00\u ctl21\u txtFirstName,基于编辑图标id

问题是我可以单击带有表id概念的编辑图标。命令是:

selenium.click("//table[@id='ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00']
//tr[td[.='"kannan"']]/td/input[@type='image']");
但我无法获取编辑图标的id

如果我得到编辑图标的id,我可以通过在编辑图标id中添加1轻松更改个人页面元素id

如何解决此问题?

仅使用id

selenium.click("ctl00_ContentPlaceHolder1_grdEmployeeMaster_ctl00");
您可以这样做:

  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;
}

这不是whatsapp,请正确填写。在这里,我们首先查找表,然后查找其tbody,然后查找tbody标记中的所有行。然后,我们在每一行中找到编辑选项按钮。我们假设编辑选项按钮出现在第一列中,这就是为什么我们在末尾使用td,如果它出现在第2列或第3列中,则将其更改为td[2]或td[3]。然后我们找到一个编辑选项,得到它的属性id,然后将其存储到数组列表中。这样,我们将有编辑选项按钮的所有ID的列表。