单击与其他图像具有相同src且在Selenium中没有href的相同图像

时间:2018-05-21 08:11:45

标签: selenium selenium-webdriver css-selectors

我在表格中有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.00Pending                                 FRSM15062411200FRSM15062411200E-ACTIVE13107.003107.000.00Pending                                 31021200L - 31021200E-ACTIVE16.406.400.00Pending                             

1 个答案:

答案 0 :(得分:0)

您可以使用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"]

或者如果它在表格标签下,则可以使用x-path,如

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

你可以使用web驱动程序的find元素来获取所有元素,并按照下面的说明循环它。

我在这里使用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