2017-01-26 51 views
0

我有一個測試場景,在該表中創建一個新條目(香蕉),然後修改條目,然後將其刪除。使用相對xpath和文本描述符定位元素

該表格具有修改按鈕和新條目文本說明旁邊的刪除按鈕。我想使用相對xpath來定位文本值,然後根據正在執行的測試場景以某種方式選擇刪除或修改按鈕。 enter image description here

正在使用的代碼樣本是:

*** Settings *** 
[Documentation] Delete Fruit from table 
Suite Teardown Close all browsers 
Library Selenium2Library 
Library XvfbRobot 
Library Collections 

*** Variables *** 
${delFruit} Banana 

*** Test Cases *** 
Delete Fruit Button 
    wait until element is visible xpath=//div[@id='${delFruit}'] 
    click element xpath=//div[@id='${delFruit}']/a[2]/span 
    confirm action 

這裏是幕後的HTML的喀嚓 - 全部刪除按鈕使用「刪除果」的文字描述:

<a class="button micro primary error" onclick="deleteFruit(3)" href="javascript:void(0)"> 
    <span class="fa fa-trash" title="Delete Fruit" border="0" align="absmiddle"></span> 
    </a> 
    </td> 
    <td class="cell ">Banana</td> 

問題是,當我爲表創建一個新條目時,表內容按字母順序修改。所以實際上,香蕉入口位於Apple和Orange之間。

我可以硬編碼點擊元素行動,刪除按鈕: click element xpath=/html/body/div[1]/div/div[2]/div/div[2]/table/tbody/tr[1]/td[1]/a[2]

我希望能找到一種方式,表項的位置來識別元素的香蕉xpath=/html/body/div[1]/div/div[2]/div/div[2]/table/tbody/tr[1]/td[1]/a[2]左側爲轉移新項目被添加。

有沒有人有關於如何選擇香蕉左邊的刪除按鈕的建議?

回答

1

據瞭解你的情況,prescending-sibling的XPath軸應該有所幫助:

//td[contains(text(), 'Banana')]/prescending-sibling::td/a[/span[contains(@title, 'Delete')]]

+0

由於安東這正是我一直在尋找!我現在正在嘗試! –