最近关于移动端自动化学习过程中遇到一个问题,就是指定控件的上下滑动的操作该如何处理,网上也搜索了很久,大多是介绍整个屏幕的上下左右的滑动的,很少有比较详细的关于指定元素或页面里面控件的上下滑动操作的介绍,所以特地来这里寻求大神的帮助,希望有知道或了解的大神能给出相应的解决方法,万分感谢,下面截图中已注明这次需要实现的操作,就是操作一个时间控件的上下滑动来达到选择时间的功能:
话说没有哪个大神来答疑解惑吗
有些时间选择控件是可以直接使用 send_keys() 方法,定位到输入框就可以了。(当然时间构造的要和点击选择的结果一样)
now = datetime.datetime.now()
add_date = datetime.timedelta(days = 2)
date = (now + add_date).strftime('%Y-%m-%d')
如果不行的话,只能去看一下 actionchains 方法。
那你尝试使用 actionchains 里面 click_and_hold() 和 move_to_element() 或者 move_to_offset() 等等 拿不到具体页面也没法直接给你代码。。 =,=
其实对手机来说手指上划的操作和你鼠标点着不放拖动的效果是一样的。 因为微信页面一般也是一个 H5 页面。 一开始我就看了标题以为是 selenium 然后发现是 appnium 哈哈,溜了。不过可以发我一个页面地址让我去试试么。
这个页面估计不好给,就是有链接还要注册账号,有账号也不一定进的去这个页面,这是我们公司的一个 OA 流程编辑页面,所以确实不好给,我自己找找找方法吧
这个是 pickerwheel 还是自定义的控件?如果是 pickerwheel 的话,讲道理可以 sendKeys
send_keys 是可以填入数据,但是我还要根据这个时间判断请假时长,所以必须点击一下截图中那个 “完成” 的按钮才能触发请求,获取时长
就是说我要填入一个开始时间和结束时间,当输入二者时,要点击那个 “完成” 才能触发请求,计算出这个时长,如果我只是 send_keys 输入时间的话,就没有点击 “完成” 那个按钮的操作的,也就无法触发请求去获取时长,也就无法完成业务所需的发起流程,我这边就是想实现滑动屏幕获取一个时间哈,如截图中所示
1、sendKeys 完后,点完成 btn,不行么
2、按你滑动思路走:现在你这个截图,应该是三个 pickerWheel,你获取他的高度减掉 pickerWheel 的 navibar 的高度、宽度、坐标,然后跟算出来的宽,高坐标来滑动。问题是:你不好控制滑了多少。
按照上一楼的回复我直接使用模拟鼠标拖动元素的反法,可以实现滑动了,估计是 h5 页面鼠标操作和滑动屏幕是通用的 ,不过问题最终是解决了,也很感谢你提供的思路,先 sendkeys 的话那我还是要 call 起那个选择时间的控件,那之前 sendkeys 输入的值又会改变为当前时间,所以应该是达不到我的要求的,不过也感谢回复哈