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

How to write xpath based on element's text in 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?我的意思是 index=1.

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

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

是 "Robot Framework" 找到带有文本 "Save" 的按钮并单击它的方法。

在@Tomalak 的帮助下修复 <3

使用以下 xpath 找到文本为 save -

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

使用下面的关键字,会先验证元素是否存在,然后点击locator定位的元素

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

还有一个内置关键字

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

尝试使用以下 xpath:

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

试试这个 -

//span[text()='Save']/ancestor-or-self::button