【问题标题】:How to check element should be disabled in robot framework?如何检查机器人框架中应禁用的元素?
【发布时间】:2021-01-11 10:33:27
【问题描述】:
<a class="paginate_button previous disabled" aria-controls="DataTables_Table_82" data-dt-idx="0" tabindex="-1" id="DataTables_Table_82_previous">Previous</a>

*** Test Cases ***
check the preview and next button in the table
       element should be disabled    //*[text()='Previous']

这个“元素应该被禁用”关键字总是失败并且 throws 元素被启用。有任何方法可以进行此验证。

【问题讨论】:

  • element should be disabled 这个关键字在内部检查属性readonly 是否为None,但在给定的html 中没有属性readonly 因此它返回false,因此会出现断言错误
  • 所以有任何方法可以验证上述测试用例
  • 解决方法是在启用和禁用元素时观察 DOM。现在,如果元素的任何属性发生变化,请在定位器中使用它们并在定位器上断言。如果没有属性更改但添加了新标签或元素,则在定位器中使用它并对其进行断言。

标签: selenium-webdriver automation robotframework


【解决方案1】:

正如 cmets 中所说,“应禁用元素”关键字检查您的元素没有的属性。其他关键字也可能经常发生这种情况,具体取决于您正在测试的应用程序。

在这种情况下,建议在 SeleniumLibrary 之上创建一个额外的层,以处理应用程序中页面元素的独特方面。这也可以是资源文件或库。

您的元素似乎有一个类class="paginate_button previous disabled"disabled,可用于检查元素本身是否被禁用。

例如,您可以使用这样的 XPATH //*[text()='Previous' and contains(@class, 'disabled')]:

Element Status Should Be Disabled 
    [arguments]    ${element_text}
    Element Should Be Visible    //*[text()='${element_text}' and contains(@class, 'disabled')]

要检查元素是否启用,您可以否定类标准,或者是否有一个名为 enabled 的类,您可以用相同的方式检查。

Element Status Should Be Enabled
    [arguments]    ${element_text}
    Element Should Be Visible    //*[text()='Previous' and not(contains(@class, 'disabled'))]
 

请注意,这些关键字只是示例,是在不了解您的应用程序的情况下编写的,只是为了给您一个想法。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2017-09-13
    • 1970-01-01
    • 1970-01-01
    • 2020-05-23
    • 2015-11-11
    • 2019-01-23
    • 1970-01-01
    • 2019-12-03
    相关资源
    最近更新 更多