在robot框架中编写条件脚本



我刚开始学习机器人自动化。下面是我被卡住的场景。

我的页面上有一个排序依据,一次点击按升序排序,第二次点击按降序排序。我不知道如何做到这一点。

下面是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. 单击对列进行排序的元素
  2. 检查class元素以查看它是否包含值"asc"或"desc">
  3. 无论它包含哪一个,都要从该列中获取至少2个价格值(最好是从第一行中获取一个,从下面几行获取一个(
  4. 您可能需要进行一些数据清理(regex(,将值转换为整数或数字格式,删除美元符号、逗号等(
  5. 根据排序标志(asc或desc(对数字进行比较。如果为asc,请验证第一行的值是否小于或等于第二行的值。如果desc,验证第一行的值是否大于或等于第二行的值

下面是一个检查降序的示例。第一行检查列是否按降序排序,然后从结果集中(第一行、第二行、第三行(获取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

最新更新