Robot Framework - 检查 xpath 定义的元素是否存在

Robot Framework - check if element defined by xpath exists

我想知道,我很想查找或编写条件来检查某个元素是否存在。如果确实如此,我想执行 IF 条件的主体。如果它不存在而不是执行 ELSE 的主体。

有这样的条件还是需要自己写?

通过使用 xpath 定位元素,我假设您正在使用 Sselenium2Library。在该库中有一个名为的关键字:

Page Should Contain Element 需要一个参数,即 selector,例如定义元素的 xpath。

如果页面不包含指定元素,则关键字失败。

对于条件,使用这个:

${Result}= Page Should Contain Element ${Xpath} Run Keyword Unless '${RESULT}'=='PASS' Keyword args*

您还可以使用其他关键字:Xpath Should Match X Times

我更喜欢使用获取匹配的 XPath 计数,因为如果找不到元素,接受的答案会抛出错误

${count}= Get Matching XPath Count ${Xpath}
Run Keyword And Return If   ${count} > 0 Keyword args*

我也有同样的疑问,但是上面的答案并不能满足我的要求

所以,我使用了rpaframework

*** Settings ***
Library    RPA.Browser.Selenium

*** Tasks ***
Verifying if a link is present or not
    Open Available Browser    https://www.amazon.com
    ${val}    Does Page Contain Link    //a[contains(@href,'some_text_present_in_your_link')]
    IF    ${val}== True
        Log    Link is present in the web page.
    ELSE
        Log    Link is not present in the web page.

这个库中有很多关键字可以验证元素、按钮、复选框、图像、文本字段等其他内容。

这些关键字return True或False,所以我们可以根据变量值执行其他步骤。

注意:不要忘记安装rpaframework库。

pip install rpaframework