稍微复杂些的动作总是时灵时不灵的,尤其是触发窗口控件那些,不灵的时候,我一般增加一些延时就能解决,但最近发现不管加多少延时都不灵,非得重启才能解决,离谱的是重启之后,我把延时去掉他也能正常运行,就很迷,麻烦解决下这个bug
窗口界面控制FlaUI版好像有缓存,同一个窗口,开机第一次获取或者触发,时间会比较久,但是连续用几次之后,有了缓存,就会找的快了。可以通过判断下一步的控件元素是否存在来判断有没有触发成功,如果没有那就循环多触发几次,直到能找到下一步的控件元素。
谢谢,我研究下
是要把是否成功输出为变量,然后跟一个如果,判断为失败,再跟个重复,在重复里放入之前的触发控件,这个思路对吗大佬
不灵的时候看看是否XPath变了。
而且有时候没变也触发不了,要重启quicker才行
失败次数多了是要重启才行。可以设计成失败就尝试其它XPath,或多线程同时运行所有可能的XPath。
这里输出是否成功好像不是很准,没记错的话,即便触发失败了,它好像也是返回成功来着。建议是获取下一步的窗口控件是否成功,来判断有没有触发成功。不过你的XPath如果是自动变得话,那就不是quicker的问题了
怎么多线程运行?是在这里另起一行再写吗
不但xpath会变,连窗口句柄都会变,所以我一般不指定句柄了,可能是我这个软件的特性吧
ok我写下试试
能行!感谢大佬
需要提供一下详细复现问题的步骤。不然很难分析和定位具体问题。
另外,也可以在遇到类似现象的时候,对其它软件使用类似动作,以分析是否为目标软件的状态变化导致的。
窗口界面控制FlaUI版好像有缓存,同一个窗口,开机第一次获取或者触发,时间会比较久,但是连续用几次之后,有了缓存,就会找的快了。可以通过判断下一步的控件元素是否存在来判断有没有触发成功,如果没有那就循环多触发几次,直到能找到下一步的控件元素。
谢谢,我研究下
是要把是否成功输出为变量,然后跟一个如果,判断为失败,再跟个重复,在重复里放入之前的触发控件,这个思路对吗大佬
不灵的时候看看是否XPath变了。
而且有时候没变也触发不了,要重启quicker才行
失败次数多了是要重启才行。可以设计成失败就尝试其它XPath,或多线程同时运行所有可能的XPath。
这里输出是否成功好像不是很准,没记错的话,即便触发失败了,它好像也是返回成功来着。建议是获取下一步的窗口控件是否成功,来判断有没有触发成功。不过你的XPath如果是自动变得话,那就不是quicker的问题了
怎么多线程运行?是在这里另起一行再写吗
不但xpath会变,连窗口句柄都会变,所以我一般不指定句柄了,可能是我这个软件的特性吧
ok我写下试试
能行!感谢大佬