如何根据Robot Framework中的元素文本编写xpath?

时间:2017-01-23 12:12:03

标签: selenium xpath selenium-chromedriver robotframework selenium2library

我正在使用Robot Framework和Selenium2Library

该按钮的文本为“Save”,并且它的xpath中没有更独特的内容,所以我正在尝试根据元素的文本编写一个xpath。 如何使用那段html基于元素的文本编写一个xpath:

<button class="slds-button slds-button--brand cuf-publisherShareButton NARROW uiButton" type="button" data-aura-rendered-by="1571:2954;a" data-aura-class="uiButton">
<span class=" label bBody truncate" dir="ltr" data-aura-rendered-by="1574:2954;a">Save</span>
</button>

(这是在文件的中间)。

编辑: 似乎在下一个标签上有少量具有相同文本的元素(目前看不见)。 我应该如何使用此文本为第二个元素编写xpath?我的意思是索引= 1。

6 个答案:

答案 0 :(得分:2)

Click Button    //button[.//text() = 'Save']

“机器人框架”是找到带有“保存”文本并单击它的按钮的方式。

在@Tomalak的帮助下修复 &LT; 3

答案 1 :(得分:1)

尝试搜索包含所需文字范围的按钮

  WebElement saveButton = driver.findElement(By.xpath(".//button/span[text()='Save']")

答案 2 :(得分:0)

使用以下xpath查找文字为save -

的按钮
 //button[contains(.,'Save')]

答案 3 :(得分:0)

使用以下关键字,首先验证元素是否存在,然后点击定位器所在的元素

Element should become visible    xpath=//button/span[text()='Save']
Click Button     xpath=//button/span[text()='Save']

还有另一个内置关键字

Click Element    xpath=//button/span[text()='Save']

答案 4 :(得分:0)

尝试使用以下xpath:

 xpath=//span[contains(text(),'Save')]

答案 5 :(得分:0)

试试这个 -

{ "packages": "../../Packages" }