流程定义之高级篇(Part 2)
1、流程说明
在《流程定义之高级篇(Part 1)》 一文中,我们知道了什么是遍历循环,什么是用户自定义变量,并将每一个商品的名称与价格提取到了相应的变量; 本文我们将介绍如何在流程定义中通过流程节点“IF条件”完成业务逻辑的编写。
2、退出遍历循环的IF条件设置
我们现在需要在遍历循环中增加一个“IF条件”的流程节点,如下图所示:

《增加“IF条件”的流程判断节点》
显然,退出循环的判断条件应该是两个:商品名称与商品价格,这两者之间的关系是:并且。

《退出循环的条件设置》
针对条件1,我们的设置应该是: (1)点击条件1的编辑按钮,(2)左操作数是变量 {product},(3)运算符为“包含”,(4)右操作数为常量“Anker 10000mAh Slim Power Bank Charging Portable External Battery Backup Charger”:

《IF条件1的设置》
同样道理,针对条件2,我们的设置应该是: (1)点击条件1的编辑按钮,(2)左操作数是变量 {price},(3)运算符为“包含”,(4)右操作数为常量“21.99”:

《IF条件2的设置》
3、IF条件体设置
上述“IF条件”的流程判断条件如果成立,则流程进入IF条件体内,那么,我们应该在IF条件体内做些什么工作? 显然,应该是:
- 设置变量 {find} 为 true,代表:我们找到了希望查找的商品
- 退出遍历循环
- 同时还要退出WHILE循环
- 此时,{product}所代表的页面节点就是我们要找的商品,我们应该点击它,进入此商品的详情页面
- 为了保证真实性,我们应该在商品页面中做几秒钟的停留,滚动一下页面,模拟人对商品的观察行为
- 将此商品加入购物车,流程结束
3.1、变量赋值
当IF条件成立时,我们应该将变量 {find} 设置为 true,代表已经找到了我们希望检索的商品:

《变量赋值》
3.2、其它流程节点
当IF条件成立时,除了对变量进行赋值外,我们还需要退出当前循环体,因此,最终的IF条件体内的流程节点如下图所示:

《IF条件体内的流程节点》
4、WHILE循环体内的流程节点
在WHILE循环体内,我们应该再加一个退出循环的条件判断:当变量 {find} 为真时,代表找到了我们希望查找的商品,就可以退出WHILE循环:

《退出WHILE循环体的判断条件》
5、WHILE循环体外的流程节点
在WHILE循环体外,我们应该再次判断是否找到了我们希望查找的商品:当变量 {find} 为真时,则点击网页元素{product},进入商品的详情页面, 并滚动几下鼠标,模拟人在查看商品详情的行为:

《如果找到商品则进入商品的详情页面》
6、执行预览
考虑到在商品页面中将商品加入到购物车比较简单,无非使用了我们前文介绍过的流程节点“点击元素”,这里不再赘述。 点击“执行预览”,花漾指纹浏览器开始执行流程定义中指定的内容,在输出日志中,我们可以观察到,找到了我们希望查找的商品, 而最终花漾指纹浏览器也停留在商品的详情页面:

《如果找到商品则进入商品的详情页面》
7、总结
在本文中,我们了解了流程节点“IF条件”,且在条件成立时能够对变量进行赋值、退出循环等等;但本文的核心思想还是希望读者能够具备一定的编程思维, 譬如变量 {find},它的作用就是辅助判断有没有找到我们希望查找的商品,而在整个流程定义中,多次通过对 {find} 变量进行判断,以决定流程分支的走向。