【问题标题】:Writing Conditional scripts in robot framework在机器人框架中编写条件脚本
【发布时间】:2018-07-26 22:42:14
【问题描述】:

我刚开始使用机器人自动化。下面是我卡住的场景。

我在我的页面上有一个排序方式,单击一次进行升序排序,第二次单击进行降序排序。 我不确定如何实现这一点。

下面是html代码-

<div class="sort-plans">
        <a class="button--sort asc" ng-click="toggleOrderByPrice()" ng-class="{'asc': orderByPrice, 'desc': !orderByPrice }"><strong>Sort by</strong> Price</a>
    </div>

能够使用这个按 div 定位排序 -

Click element                ${LOC_ShopPlanTab_sortByPriceLabel} 

点击后我可以看到下面的类变化-

${LOC_ShopPlanTab_sortByPriceAsc}     xpath = //a[@class='button--sort asc']
${LOC_ShopPlanTab_sortByPriceDesc}    xpath = //a[@class='button--sort desc']

如何将这些放在一起以确定排序是否有效?

【问题讨论】:

    标签: robotframework


    【解决方案1】:

    对列进行排序后,要验证排序,请从该列中获取值并验证它们是否大于或等于,或者小于或等于彼此。

    简单的逻辑是这样的:

    1. 单击对列进行排序的元素
    2. 检查类元素以查看它是否包含值“asc”或“desc”。
    3. 无论它包含哪个,从该列中获取至少 2 个价格值(最好是第一行中的一个,向下几行中的一个)。
    4. 您可能需要进行一些数据清理(正则表达式)以将值转换为整数或数字格式,删除美元符号、逗号等)。
    5. 根据排序标志(asc 或 desc)对数字进行比较。如果 asc,验证第一行的值是否小于或等于第二行的值。如果是 desc,验证第一行的值是否大于或等于第二行的值。

    这是一个检查降序排序的示例。第一行检查列是否按降序排序,然后从结果集中获取 3 个值(第 1、第 2、第 3 行),将它们转换为整数,然后比较它们。

    Wait Until Element Is Visible    css=th.right.sortdsc > a.ajax-table
    ${Val1}    Get Text    css=td.right
    ${Val2}    Get Text    //table[@id='resultsTable']/tbody/tr[2]/td[4]
    ${Val3}    Get Text    //table[@id='resultsTable']/tbody/tr[3]/td[4]
    ${V1}    String Convert To Integer    ${Val1}
    ${V2}    String Convert To Integer    ${Val2}
    ${V3}    String Convert To Integer    ${Val3}
    Should Be True    ${V1} >= ${V2}
    Should Be True    ${V2} >= ${V3}
    

    克伦达图

    【讨论】:

    • 这是一个非常好的解决方案 - 它实际上检查行中的值,这比类更可靠。
    猜你喜欢
    • 2016-07-29
    • 1970-01-01
    • 2016-08-09
    • 2010-11-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-04-25
    相关资源
    最近更新 更多