上一期的教程中小采给大家讲解了火车浏览器如何模拟打开网页、登录、刷新、后退等一系列的浏览器操作,本期教程则着重说明一下火车浏览器在进行操作时如何进行逻辑运算。
为什么需要逻辑运算?因为我们操作网页时可以通过肉眼进行很多判断,比如等待页面加载完成再进行下一步操作,但火车浏览器无法通过肉眼判断,因此需要给出一些逻辑让火车浏览器更加智能和准确。
依次来看一下逻辑运算都包含哪些功能:
1、条件判断
对当前页面源码、xpath、以及简单的js代码进行一系列判断。条件判断的适用场景很多,如:翻页时判断是否翻页完毕,是否仍需要再进入下一页;或判断输入框是否已经加载完毕等,如果没有这些判断的话,整个流程就会错乱无章。而且有了条件判断之后,还可以避免浪费过多的等待时间,效率更高。
操作指导
(1)源代码包含:判断当前页面源代码是否包含某元素。
(2)源代码等于:判断当前页面源代码是否完全等于某元素。
(3)存在Xpath:判断当前页面是否包含该xpath。
(4)Js代码判断:进行一些简单的js代码片段判断,如1.判断变量[a]的值是否大于6:{-var.a-}6
(5)逻辑或{
}:多个条件有一个满足即为true,相当于js中的“
”,例如,在存在xpath元素中写作://a[
id=user]{}//a[
id=name]。2、变量比较
对字符串变量,List变量,计数器变量进行比较。比如判断变量是否为空,可以按照下图的设置,比较类型选择“字符变量A等于字符变量B”,比较对象B为空。
操作指导
(1)比较类型:从上图可以看出,在比较类型的六项中,有三项是包含”比较“一词的,因此变量A和变量B的比较结果中的大于、小于、等于是针对这三项的,其余三项类型不受此影响。
(2)比较对象:比较对象B可以直接写入字符串,也可以选择变量。
3、循环
使用循环后,循环操作中的步骤可以重复循环运行。适用场景如循环点击翻页,循环输入变量实现批量搜索等。
操作指导
(1)无限循环:即操作可以无限循环,如果使用无限循环,则循环步骤中一定要有条件判断可以结束循环,否则会造成程序的死循环。
(2)循环指定次数:指定循环的运行次数,也可以使用计数器变量。
(3)循环遍历list:脚本步骤有很多只能调用文本型变量,比如打开网页、写值等。这时如果有多个值是存在list变量中的,就可以使用循环遍历list保存至文本型变量,然后循环中的步骤再调用该文本型变量,list变量的值就可以循环调用了,如下图。
(4)从数据库查询数据:数据库配置中配置数据库路径,然后在”查询语句“框中写上select语句(必须要写完整的列名,不可以使用*代替),循环过程中,就会将列中的值自动赋值给与列同名的变量。比如:selecttitlefromlianxi,就会将title列中的值自动赋值给文本变量title。
4、跳出本次循环
既然有了循环设置,相应的也会有结束循环,但需要注意跳出与结束不同,跳出本次循环的作用是跳出当前正在运行的循环,不再运行本次循环内剩余步骤,直接运行下一次循环。
操作指导
比如定义了循环次数为4次,在第2次时,如使用此步骤,则跳过循环内该步骤下面的步骤,直接进行第3次循环,直到结束。
5、结束当前循环
只能在循环内添加此步骤,作用是结束整个循环操作。操作指导
比如定义了循环次数为4次,你在第2次时,使用此步骤,则直接结束整个循环,不再进行第3次、第4次,而开始运行循环外步骤。
6、暂停等待
加载一个新页面是需要一定时间的,为了保证页面的正常打开,需要在加载新页面的步骤下加上暂停等待步骤。
操作指导
(1)等待指定时间:指定时间的单位是毫秒(1秒=毫秒)。使用计数器变量的值是将等待时间放在计数器变量中,单位为毫秒。随机时间,即等待一个随机时间。
(2)等待指定的元素出现:以指定元素作为页面加载完全的标志,该元素出现,即代表暂停等待就结束了。
(3)超时时间:如果在超时时间内,等待的元素xpath还未出现,就结束暂停等待步骤,继续运行下面的步骤。
使用技巧
很多时候页面加载的时间都是不确定的,使用等待指定的时间有时候会很耗时,这时要提高脚本效率,可以使用循环加条件判断的方式来做暂停等待。
具体操作介绍:循环中加上以指定元素xpath作为条件的条件判断步骤,如果该指定元素出现,为true,就结束循环;未出现,为false,则暂停等待然后循环继续条件判断。这样操作不用固定设置时间,能够提高操作的灵活性。
7、跳转
从当前跳转到其他步骤。
注意:只能跳转到第一层步骤,不能跳转到嵌套的步骤中,比如循环内、条件判断内的步骤等。如下图,是无法跳转到“4.点击”步骤的。
8、结束流程
功能是结束脚本的运行。
结束流程选择不同的运行结果,最后项目管理器会根据返回结果来进行统计脚本运行的情况,方便监测脚本运行。(火车浏览器SDK也可以调用结束流程返回值进行操作。)
9、引用脚本
在当前脚本中引用其他脚本运行。比如如果脚本较长时,我们可以将脚本按功能拆分成子脚本,以后方便管理,分开引用脚本运行,有利于释放内存。
操作指导
(1)当前脚本中的变量值会传递给被引用脚本中的同名变量,在被引用脚本中如果变量值被改变了,则在引用脚本运行结束后,将值再传递回当前脚本中的同名变量。(2)生成exe的时候,将被引用的脚本放在exe目录下的projects文件夹下,则能正常调用。