robotframework - 当元素没有 id 或 name 时,如何在机器人框架中使用 Click Element 功能?

标签 robotframework selenium2library

我目前在机器人框架中使用 Selenium2Library 来自动化一些网络测试。目前,我在使用 Click Element 功能自动单击登录按钮时遇到问题。

这是我想使用的元素:
<a class="transparentBtn loginLink ng-scope" ng-click="commonService.gigyaRaasLogin()" translate="BTN_ADMIN_LOGIN_WATCHLIST">LOGIN</a>
如果我从控制台复制,这就是 xpath://*[@id="menu"]/div/div[5]/div/div/div[2]/ul/li[2]/a
如果我想单击此元素,我很难找到要使用的定位器。

这些是我迄今为止尝试过的一些事情:

  • Click Element css=a.loginLink
  • Click Element link=LOGIN
  • 最佳答案

    我建议更灵活一些。如果您在定义灵活和独特之间找到平衡,这是一个好方法。否则,最小的站点更改将破坏您的测试。

    以下示例应与上一个示例匹配:

  • 匹配任何包含登录文本的链接
    Click Element       //a[contains(text(),'LOGIN')]
    
  • 匹配任何包含 LOGIN 文本的元素
    Click Element       //*[contains(text(),'LOGIN')]
    
  • 匹配类属性等于“transparentBtn loginLink ng-scope”的任何元素
    Click Element       //a[@class="transparentBtn loginLink ng-scope"]
    
  • 您可以同时检查多个属性
    Click Element       //a[@class='transparentBtn loginLink ng-scope' and @ng-click='commonService.gigyaRaasLogin()']
    
  • 您可以使用 contains() 来检查类属性的字符串部分
    Click Element       //a[contains(@class,'loginLink')]
    
  • 关于robotframework - 当元素没有 id 或 name 时,如何在机器人框架中使用 Click Element 功能?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45324287/

    相关文章:

    regex - 如何在机器人框架中使用正则表达式选择子字符串

    robotframework - 带有定位器 'xpath=//*[@id="1"]/button' 的元素未找到

    robotframework - 如何使用 selenium2library 和 Robot Framework 从 windows 目录上传文件

    robotframework - 需要有关在 Robot Framework 中传递参数和执行多个测试用例的帮助

    python - key "arrow down"的 ASCII 代码在具有 selenium2library 的机器人中使用

    python - Robot Framework f中的文件上传

    python - 带有请求库的机器人框架 CDATA xml

    python - 从机器人框架中的套件设置中调用 python 文件

    robotframework - 如何在robotframework中找到当前平台?

    robotframework - 如何让sikuli专注于桌面屏幕