如何通过Selenium Webdriver根据excel中提供的ID单击“删除”图标

时间:2018-06-25 06:35:33

标签: java selenium selenium-webdriver xpath webdriver

我有一个包含表的页面,其中包含用户的详细信息,我想在从excel检索ID时单击删除图标。SeleniumWebdriver和java用于执行此操作。 我正在使用此代码从excel检索名称:-

data.getPatientID().get(rowCnt);

表的HTML代码:-

<tr class="rgRow" id="ctl00_ContentPlaceHolder1_GridUserControl1_RadGrid1_ctl00__0">
<td>PAT 033</td>
<td><a id="ctl00_ContentPlaceHolder1_GridUserControl1_RadGrid1_ctl00_ctl04_lbtnLastname" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridUserControl1$RadGrid1$ctl00$ctl04$lbtnLastname','')">Bee</a></td>
<td>&nbsp;</td>
<td>Barry</td>
<td>(833)833-8338</td>
<td>Frisco</td>
<td>physician new </td>
<td><a onclick="if(!confirm('Do you want to delete this record'))return false;" id="ctl00_ContentPlaceHolder1_GridUserControl1_RadGrid1_ctl00_ctl04_Remove" class="closeBtn" href="javascript:__doPostBack('ctl00$ContentPlaceHolder1$GridUserControl1$RadGrid1$ctl00$ctl04$Remove','')"></a></td>

任何帮助将不胜感激。enter image description here

****中的文本是名称和删除按钮。

3 个答案:

答案 0 :(得分:0)

根据您共享的HTML,只有一个可点击链接,其名称为 Albert

在这种情况下,您可以使用 linkText

driver.findElement(By.linkText("Albert")).click()

请注意,没有删除按钮。

答案 1 :(得分:0)

根据您共享的 HTML 点击删除图标,您可以创建一个函数,该函数将参数作为 name ,例如阿尔伯特,然后点击相应的删除图标,如下所示:

set.seed(123)
mydata <- data.frame(x = runif(10), y = runif(10))

edit_plot <- function(data) {
  plot(data)

  sel <- locator(n = 1)
  if(is.null(sel)) return(TRUE)
  dd <- (data$x - sel$x)^2 + (data$y - sel$y)^2

  data[which.min(dd),] <- edit(data[which.min(dd),])
  r <- edit_plot(data)
  if(r) return(TRUE)
}
edit_plot(mydata)

现在点击删除图标,您可以调用函数public void clickDeleteIcon(String fname) { new WebDriverWait(driver, 20).until(ExpectedConditions.elementToBeClickable(By.xpath("//tr[@class='rgRow'][contains(@id,'_ContentPlaceHolder1_GridUserControl1_RadGrid1_')]//following::td[2]/a[.='" + fname + "']//following::a[1]"))).click(); } ,并传递以下任何名称

clickDeleteIcon(String fname)

答案 2 :(得分:0)

是的,单击“删除”的方法是在条件上应用等待(如果不是名字的话)。