我刚开始学习机器人自动化。下面是我被卡住的场景。
我的页面上有一个排序依据,一次点击按升序排序,第二次点击按降序排序。我不知道如何做到这一点。
下面是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']
如何将这些信息组合起来,以确定排序是否有效?
对列进行排序后,要验证排序,请从该列获取值,并验证它们是否大于或等于,或小于或等于。
简单的逻辑是:
- 单击对列进行排序的元素
- 检查class元素以查看它是否包含值"asc"或"desc">
- 无论它包含哪一个,都要从该列中获取至少2个价格值(最好是从第一行中获取一个,从下面几行获取一个(
- 您可能需要进行一些数据清理(regex(,将值转换为整数或数字格式,删除美元符号、逗号等(
- 根据排序标志(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