【问题标题】:Selenium Webdriver - How to click on ''Update icon'' in a grid tableSelenium Webdriver - 如何在网格表中单击“更新图标”
【发布时间】:2017-09-12 07:16:47
【问题描述】:

这是使用 selenium webdriver (JAVA) 从网格视图中单击特定记录的“更新图标”的代码

我编写了以下代码来单击“更新图标”:-(此代码运行良好)

     //This will count total no of rows in the grid:-

  List<WebElement> count=driver.findElements(By.xpath(".//*[@id='ctl00_ContentPlaceHolder1_gvCustomerDetails']/tbody/tr"));
  int totalNoRecords=count.size();
  System.out.println("total no of rows are  "+totalNoRecords);


  //This will find a particular record in a webtable like po name as selenium_testing11selenium_testing12
  WebElement record=driver.findElement(By.xpath(".//*[@id='ctl00_ContentPlaceHolder1_gvCustomerDetails']/tbody/tr/following::td[text()='selenium_testing11']"));
  String poName= record.getText();

  //This will verify that if po name is equals to this then only click on Update icon else print the else message
  if(poName.equals("selenium_testing11")){
  WebElement updateBtn=driver.findElement(By.xpath(".//*[@id='ctl00_ContentPlaceHolder1_gvCustomerDetails']/tbody/tr/following::td[text()='selenium_testing11']/preceding-sibling::td//a[contains  (@id,'btnUpdate')]"));
  updateBtn.click();
  }
  else
      System.out.println("Po does not exists");

【问题讨论】:

  • 您遇到什么错误?请分享
  • 您可以尝试使用 xpath 找到特定的行更新按钮元素并单击它。
  • 我想点击特定采购订单“selenium_testing11”的更新图标。当我使用该更新图标的 id 时,我可以点击它,但我需要它应该点击我正在传递的 PO 名称的更新图标。我不知道该怎么做。
  • 如果我的回答有效,或者您对我的代码有疑问,请说几句话。
  • 欢迎来到 Stack Overflow!请参阅:How do I do X? SO 的期望是,提出问题的用户不仅会进行研究以回答他们自己的问题,还会分享该研究、代码尝试和结果。这表明您已经花时间尝试帮助自己,它使我们免于重复明显的答案,最重要的是它可以帮助您获得更具体和相关的答案!另见:How to Ask

标签: java selenium


【解决方案1】:
String xpath = "//table[contains(@id, 'gvCustomerDetails')]" + 
"//tr[@class][td[5][text()='%s']]/td[2]/a";

public void clickEditIcon(String po) {
    driver.findElement(By.xpath(String.format(xpath, po))).click();
} 

xpath 解释:

//table[contains(@id, 'gvCustomerDetails')] 定位表
//tr[@class] 表示仅查找不是标题列行的行
[td[5][text()='%s']] 是 tr 上的限定符,表示仅查找第 5 个 tr 单元格文本等于参数:po,td[5] 表示列:PO
/td[2] 表示从匹配的行中查找第 2 个单元格(其中的更新图标)
/a 表示查找更新图标匹配单元格内的链接

【讨论】:

  • 请解释你的代码;仅代码的答案在 SO 上不受欢迎。
  • 感谢您的努力,但此代码不适用于我。 @yong
  • 嗨,我注意到了,但它仍然无法正常工作。我正在使用TestNG。我认为 xpath 不正确。
  • 如果 xpath 不正确,selenium 应该抛出 NoSuchElement 异常,你在运行时看到了吗?您是否在浏览器开发工具中手动尝试了我的答案中的 xpath,以查看它是否可以找到元素,请在手动尝试之前将 xpath 中的 %s 替换为来自列:PO 的真实文本。
  • 另一种可能是表需要时间来完成加载。所以尝试在 click() 之前添加 sleep() 10 秒。
猜你喜欢
  • 2016-08-07
  • 1970-01-01
  • 1970-01-01
  • 2018-09-22
  • 2016-06-28
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多