在机器人框架中编写条件脚本

时间:2018-07-26 10:35:25

标签: robotframework

我只是从机器人自动化开始。下面是卡住的情况。

我的页面上有一个排序依据,单击一次升序,第二次单击降序排序。 我不确定如何实现这一目标。

下面是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']

如何将它们放在一起以找出排序是否有效?

1 个答案:

答案 0 :(得分:1)

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

简单的逻辑是这样:

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

这里是检查降序的示例。第一行检查列是否按降序排序,然后从结果集中获取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}

Klendathu