问卷星自动填写,智能验证和滑动块

之前在 这里 介绍了基本的问卷星填写方法,然而博主在之后自动填写时发现经常需要智能验证,而且还加一个滑动块拖动,于是今天继续研究一下添加这个功能。

下面的示例是电脑版的问卷星页面,博客里的 ff3.png 改为
在这里插入图片描述

@20-3-30
最近发现拖动滑块哪里总是有问题,试了几种办法,采用假装拖动一次,然后再拖动比较有效。

@20-5-18
最近发现最后那一步容易出现验证出错的情况,大概调调参数就行了。

智能验证

这个就是一个点击的问题,这个点击可以放在 pyautogui 也可以放在js 中,当然放在Js中最简单,虽然有时候不会出现,但是写上也不会报错。

于是js部分代码变成了,

// getById("ctlNext").click() 这个是手机版
getById("submit_button").click()
window.scrollTo(0, document.documentElement.clientHeight*8); // 拉到最下面
getById("rectMask").click() // 点击只能验证

这里就不加延时等待了,似乎这个验证按钮是瞬间出现的,即直接用js代码调出来的没有进行提交。

滑块拖动

这里由于涉及提交因此有延时,我打算放到pyautogui中,思路还是用图片检测到滑块位置,然后拖动完成。
使用图片ff5.png
在这里插入图片描述
@20-4-4 竟然又修改了图标 (下面有个小蓝点)
在这里插入图片描述

...
pyautogui.keyDown('Enter')
    
time.sleep(2)
cnt=0
while True:
    cposition = pyautogui.locateOnScreen('pics/ff5.png')
    if cposition: break
    time.sleep(0.5)
    cnt+=1
    if cnt>6: exit()
    
cc = pyautogui.center(cposition)
pyautogui.moveTo(cc[0],cc[1]) 
time.sleep(0.5) # 好像不能太快,会出错
pyautogui.dragRel(512, 0, duration=1) # duration 也不能太小

至此终于全自动了,希望不要再改了。这种每天都要提交一次的文件,官方给出自动填写脚本好,不过这次也增加了自己自动化的知识,虽然不难,但是作用很大,收获很多。

补充新修改的拖滑块方法,就是代码最后部分改成如下:

pyautogui.moveTo(cc[0],cc[1]) 
pyautogui.dragRel(200, 0, duration=0.8) # 假装拖一下
pyautogui.moveTo(cc[0],cc[1]) 
pyautogui.dragRel(512, 0, duration=0.8)

补充拖动容易出错的解决方法,将最后的代码改成

pyautogui.dragRel(256, 0, duration=0.8)
pyautogui.moveTo(cc[0],cc[1]) 
pyautogui.dragRel(320, 0, duration=3)
  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值