【问题标题】:Clicking on identical Image having same src as other images and no href in Selenium单击与其他图像具有相同 src 且在 Selenium 中没有 href 的相同图像
【发布时间】:2018-05-21 17:43:15
【问题描述】:

我在一个类似结构的表格中有 3 行,其中图像作为编辑按钮显示为所有 3 行分别但相同。要编辑该行,我需要单击该图像,但它具有以下属性:并且此 id(1526885146519) 是动态的。我需要一一单击所有编辑按钮。我应该怎么做才能点击它们?

<img src="../../../Intranet/Images/if_edit_173002.png" 
     onclick="fnEditRow(1526885146519);" 
     style="cursor: pointer; margin-right: 3px; margin-left: 3px; wdith; width:18px; height:18px;" 
     title="Eidt Item">

表格行 HTML 属性-

G450A1SK1200A00G450A1SK1200A00E-Active1668.70668.700.00待定 FRSM15062411200FRSM15062411200E-ACTIVE13107.003107.000.00待定 31021200L--31021200E-ACTIVE16.406.400.00待定

【问题讨论】:

  • 请阅读为什么screenshot of HTML or code or error is a bad idea。考虑使用基于格式化文本的相关 HTML、代码试验和错误堆栈跟踪来更新问题。
  • 它将拥有比 ID 更多的属性。有几种方法可以做到这一点。分享该页面的 HTML 源代码,以便有人可以帮助您。
  • HTML 属性
  • @DebanjanB - 截图不是错误或代码,它是应用程序来了解它的外观。
  • @Samira,看来catalogue number 是独一无二的,您可以通过它找到行,然后在行内找到编辑按钮。如果此解决方案可以接受,请显示表格的 HTML 代码

标签: selenium selenium-webdriver css-selectors


【解决方案1】:

您可以使用x-pathcss-selector 来定位它们。

可能的 xpath 是,

//img[@src="../../../Intranet/Images/if_edit_173002.png"]
//img[@src="../../../Intranet/Images/if_edit_173002.png" and @title="Edit Item"]
//img[@title="Edit Item"]
//img[starts-with(@onclick,'fnEditRow')]

css 选择器

img[src="../../../Intranet/Images/if_edit_173002.png"]
img[title="Edit Item"]

或者如果它在 table 标签下,你可以使用 x-path 之类的

//table/tr/td[last()]/img

您可以使用网络驱动程序的查找元素来获取所有元素并如下所示循环。

我这里用的是java,

List<WebElement> lstElements = driver.findElements(By.xpath("//img[@title=\"Edit Item\"]");
for(WebElement ele:lstElements){
   ele.click();
   //do other stuffs
}

或使用 Index 来获取特定的索引元素,如

(//img[@src="../../../Intranet/Images/if_edit_173002.png"])[1] -- first edit button

(//img[@src="../../../Intranet/Images/if_edit_173002.png"])[2] -- second edit button

(//img[@src="../../../Intranet/Images/if_edit_173002.png"])[3] -- third edit button

【讨论】:

  • 如果我采取这样的方式.. //img[@title="Edit Item"] 或 //img[starts-with(@onclick,'fnEditRow')]第一个编辑按钮。我想在不同的行中一一点击所有 3 个编辑按钮。
  • 使用查找元素并循环它。或使用索引获取特定元素
猜你喜欢
  • 1970-01-01
  • 2023-03-11
  • 2014-11-04
  • 2019-07-03
  • 2015-12-11
  • 1970-01-01
  • 1970-01-01
  • 2016-05-19
  • 1970-01-01
相关资源
最近更新 更多