单击与其他图像具有相同src且Selenium中没有href的相同图像
我在一个类似表格的结构中有3行,其中一个图像作为所有3行的编辑按钮分别显示,但完全相同。要编辑该行,我需要单击该图像,但它具有以下属性:并且该id(1526885146519)是动态的。我需要逐个单击所有编辑按钮。我应该如何单击它们单击与其他图像具有相同src且Selenium中没有href的相同图像,selenium,selenium-webdriver,css-selectors,Selenium,Selenium Webdriver,Css Selectors,我在一个类似表格的结构中有3行,其中一个图像作为所有3行的编辑按钮分别显示,但完全相同。要编辑该行,我需要单击该图像,但它具有以下属性:并且该id(1526885146519)是动态的。我需要逐个单击所有编辑按钮。我应该如何单击它们 <img src="../../../Intranet/Images/if_edit_173002.png" onclick="fnEditRow(1526885146519);" style="cursor: pointer; mar
<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待定
您可以使用
x-path
或css选择器来定位它们
可能的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路径,如
//table/tr/td[last()]/img
您可以使用web驱动程序的“查找元素”来获取所有元素并按如下所示循环它
我在这里使用java
List<WebElement> lstElements = driver.findElements(By.xpath("//img[@title=\"Edit Item\"]");
for(WebElement ele:lstElements){
ele.click();
//do other stuffs
}
请读一读为什么会这样。考虑使用格式化的基于文本的相关HTML、代码试验和错误堆栈跟踪更新问题。它将具有比IDID更多的属性。共享该页面的HTML源代码,以便有人可以帮助您。HTMLpropery@DebanjanB-屏幕截图不是错误或代码,它是一个应用程序,让您了解它的外观。@Samira,目录号似乎是唯一的,您可以通过它找到该行,然后在该行中找到“编辑”按钮。如果这个解决方案是可以接受的,请显示HTML代码的表格,如果我采取这样的东西//img[@title=“Edit Item”]或//img[以(@onclick,'fnEditRow')开头]它将始终使用第一个编辑按钮。我想在不同的行中逐个单击所有3个编辑按钮。使用“查找元素”并循环它。或者使用索引来获取特定的元素
(//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