「自动签到;网页自动化」
简介
觉得好用的话点个赞再走吧💖求求了(>﹏<)
你们的点赞和打赏是我不断更新的动力!💖
目录
最近更新一览
- 动作本身更新
-
NEW! pClick语句支持选择点第几个,示例:pClick|动作库|2,但是这个数字并不代表你看见的顺序,你需要一个个去试
- 新增一个完整序列的外部调用,这使你可以分享加密序列给别人,别人可通过运行你的外部调用命令在没有序列本体的情况下直接运行序列内容。使用说明见「外部/调用」
- 工具一栏新增工具「鼠标模拟点击窗口控件(试验)」
- 语句更新:完整语句
- mWinCtLClick语句,鼠标模拟点击窗口控件,该语句为试验语句,谨慎使用,后期会随时删除或修改。
计划更新
- 动作本身更新
- 正在重制...(83%)2022年5月1日
- ✅ 工具栏增加内置序列
- ⭕ 优化新手引导
- ⭕ 共享序列(网友上传)
- 子程序更新:尝鲜可自行更新网络子程序【筛选:有重要子程序】
- ✅ 窗口界面控制语句
- ✅ 鼠标滚动
- ✅重复N次数
- ⭕calc数字运算
- 以下为改动部分,先行公示(不代表最终)2022年5月1日
- +showMD、waitMD、callWeb
- +mWinCtClick|Xpath或控件名|窗口句柄(可空)
- 修复call语句返回值错误
- mImgClick:不再返回鼠标原位置
- 删除返回值
- 删除runPy
- +runIS、run、runFun
- +def定义函数
- 重复N次
- 删除pReplace
- +mScrollV、H
- +
mWinCt(L/R/DL)Click
- + loop
- 删除包裹块【【【】】】
- 删除静默模式
注意事项
- 你必须安装 Quicker的浏览器插件
-
初次使用前一定要先看下 视频 哦!这样可以对动作有个简单的认识而不至于看到长篇语句晕头转向
-
视频有点久远了,有时间重录一个
-
Chrome浏览器有概率发生Quicker插件失效,进而导致动作失效,解决方法如下
- 点击图中的三个点
- 依次选择「」「」
- 然后重启「Quicker」与「浏览器」即可
开始使用
- 请务必先看完注意事项
- 新增序列:按住
Ctrl
后点击动作
- 编辑窗口快捷键
- 运行:Alt+W
- 批量注释:Alt+3
- 内置工具:Alt+2
- 保存:Alt+SA
- 保存并退出:Alt+SQ
- 配套可选动作 「序列启动器」
- 该动作可以完全替换动作「自动签到【网页版】」视频中会提到
- 如果选择器失效,使用xpath也可以,示例:「xpath:/html/body/div[1]/div/div[1]/div[2]/div/div[1]/div[2]/h4」
界面展示
外部/调用专区
- 列表右键菜单
- 按住
LCtrl
后点击该按钮(看到提示再松开)则会生成加密的完整序列的外部调用,一次只能生成一个,生成内容包含完整序列,可以随意分享给别人直接运行,前提是安装了本动作。
- 关于上一条的使用须知:由于生成了加密内容,被分享者并不知道序列实际运行内容,所以有可能会运行到恶意序列,请务必警惕不要随意运行陌生人发给你的加密的外部调用命令!如果非常不幸导致一定损失的,Quicker开发者与动作开发者概不负责。
- 生成的外部调用格式
"C:\Program Files\Quicker\QuickerStarter.exe" runaction:db09705f-78fa-4bde-a5bd-0626dba2bbab?runName=Test1&Test2&Test3
- 生成的外部调用你可以用于其他任何地方
- 在序列内部调用其他动作【call语句】
浏览器路径说明
- 面板右键菜单
- 在序列中使用:根据表单的说明文字
@对应序列变量名
即可
- 如果右键中没有你使用的浏览器,可以在序列中直接使用路径,也可以评论区请求添加适配
【示例:http://www.baidu.com|openNB|D:\Program Files\liebao\8.0.0.21240\liebao.exe】
语法说明
- 子程序【浏览器】可编程自动化操作
- 语句无法嵌套使用且大小写敏感
- 语法示例表格
语句 |
正确性 |
说明 |
showM|#su|getInnerText|标题 |
错误 |
show与get嵌套 |
show|getTitle|标题 |
错误 |
show与get嵌套 |
showm|@标题 |
错误 |
应为showM |
#su|getInnerText|标题 |
正确 |
|
showM|@标题 |
正确 |
|
特殊命令
- 新增5个特殊命令,具体写法请点击 完整语句
- 序列内重设超时时间:「### Timeout:3」「### 超时:3」
- 开启/关闭超时后终止「### 1」「### 2」
- 开启/关闭获取元素信息失败后终止,然后返回空值「### 3」「### 4」
- 新增这些是为了增加健壮性,让不能获取时有个反馈而不是直接终止
- 比如说序列写的是点击签到按钮,那点之前要看看有没有登录,就会获取用户名,之前是获取失败就直接终止,现在你可以自设,配合 IF= 语句进行后续操作
- 左图为该句的示例,完整版在「签到语句」里
签到常用语句
语句 |
说明 |
http(s):// |
在【新标签页】打开网址【必须http开头】 |
选择器 |
点击 |
选择器|setText|文本或变量 |
更新【选择器的值为文本或变量】【多用于输入框】 |
1|delay |
延迟【1s】 |
0.5|delay |
延迟【0.5s】 |
close |
关闭【当前标签页】 |
colseP |
关闭【上一个标签页】 |
选择器|focus |
获取焦点 |
kbInput|文本或变量 |
模拟【键盘输入】【与CSS脱钩,使用前请先获取焦点】 |
kbInputE|文本或变量 |
模拟【键盘输入并回车】【与CSS脱钩,使用前请先获取焦点】 |
mClick|坐标 |
模拟鼠标【左键单击】【例如:mClick|100,100】 |
自用9DM签到参考
###正式_9DM做任务
## 关闭2个错误终止
### 13
### 超时:15
http://www.9dmdamaomod.net/
waitMB|请计算加法,完成后继续
## 检测登录状态
.c1login|getInnerText|登录按钮
IF=|登录|@登录按钮
showW|你还没有登录
## 点击登录
.c1login
waitMB|登录完成后点击继续
ENDIF
## 打开任务
#qmenu_menu li:nth-child(6) a
## 领取每日签到
tr:nth-child(6) .xi2 > a|getInnerText|每日签到
IF=|@每日签到|每日签到
tr:nth-child(6) a img
ELSE
tr:nth-child(7) a img
ENDIF
3|delay
## 点击新任务按钮
.tbn li:nth-child(1) a
## 论坛签到任务
tr:nth-child(9) .xi2 > a|getInnerText|论坛签到任务
IF=|@论坛签到任务|论坛签到任务
tr:nth-child(9) a img
ELSE
tr:nth-child(10) a img
ENDIF
3|delay
.tbn li:nth-child(1) a
## 论坛帖子类任务
tr:nth-child(10) .xi2 > a|getInnerText|论坛帖子类任务
IF=|@论坛帖子类任务|论坛帖子类任务
tr:nth-child(10) a img
ELSE
tr:nth-child(11) a img
ENDIF
3|delay
.tbn li:nth-child(1) a
## 开始做任务
.a+ li a
getTabID|任务界面
## 第一个任务
tr:nth-child(1) .xi2 > a|openN
## 点击打开帖子的链接文字
#ct strong
## 超时后点停止加载
kb|{ESC}
#post_reply
1|delay
kbInput|哇咔咔,又是美好的一天!签到签到
#postsubmit
activeTab|@任务界面
## 第二个任务
tr:nth-child(2) .xi2 > a|openN
## 点击打开帖子的链接文字
#ct strong
## 超时后点停止加载
kb|{ESC}
#post_reply
1|delay
kbInput|哇咔咔,又是美好的一天!不寒颤
#postsubmit
activeTab|@任务界面
## 领取奖励
#ct .a a
showWait|都做完了,你自己领奖励吧,记得刷新一下
完整语句
NEW!
语句 |
说明 |
###该序列名称 |
【三个#开头】后面内容作为序列名,仅在第一行有效 |
##AAA |
【两个#开头】注释,一行一条,不能写到其他语句后面 |
###END### |
【终止】出现该句则之后所有语句都不运行(全匹配) |
### Timeout:3 |
重设超时时间为3秒 |
### 超时:3 |
重设超时时间为3秒 |
### 关闭超时后终止 |
关闭超时后终止,也可以写【### 1】 |
### 开启超时后终止 |
开启超时后终止,也可以写【### 2】 |
### 关闭获取元素信息失败后终止 |
关闭获取元素信息失败后终止,也可以写【### 3】 |
### 开启获取元素信息失败后终止 |
开启获取元素信息失败后终止,也可以写【### 4】 |
|
|
@变量名 |
使用变量名为【变量名】的值【变量名禁止包含@】 |
@ClipText |
获取【粘贴板文本】 |
AAA|setIn|ClipText |
把AAA【写入粘贴板】【粘贴板的变量名固定为ClipText】 |
文本或变量|setIn|变量名 |
把文本写入变量名 |
call语句 |
【调用其他动作】该句请使用内部工具生成 |
|
|
AAA|setIn|变量 |
把AAA写入变量名为【变量】的变量【变量名禁止包含@】 |
show|\@变量+ +@变量 |
@变量 AAA |
show|\@变量+ +\@变量 |
@变量 @变量 |
show|XXX@变量 |
XXX@变量 |
show|@变量+ +@变量 |
AAA AAA |
show|@变量+@变量 |
AAAAAA |
show|@变量+hhh |
AAAhhh |
show|@变量+\+@变量 |
AAA+@变量 |
show|@变量+\++@变量 |
AAA+AAA |
show|@变量+\\+@变量 |
AAA\AAA |
show|@变量+\\\+@变量 |
AAA\+@变量 |
show|@变量+\\\++@变量 |
AAA\+AAA |
|
|
show|@变量名 |
消息(蓝) |
showS|@变量名 |
成功(绿) |
showM|@变量名 |
消息(蓝) |
showW|@变量名 |
警告(黄) |
showE|@变量名 |
错误(红) |
showWait|@变量名 |
常驻消息 |
|
|
选择器 |
点击 |
选择器|dbclick |
双击 |
选择器|submit |
提交表单 |
选择器|focus |
获取焦点 |
选择器|blur |
失去焦点 |
选择器|openL |
提取选择器内部href链接并在【当前标签页】打开 |
选择器|openN |
提取选择器内部href链接并在【新标签页】打开 |
选择器|openNW |
提取选择器内部href链接并在【新窗口】打开 |
选择器|openNB|@浏览器路径 |
提取选择器内部href链接并在【指定浏览器】打开 |
|
|
http(s):// |
在【新标签页】打开网址【必须http开头,下同】 |
http(s)://|openL |
在【当前标签页】打开网址 |
http(s)://|openN |
在【新标签页】打开网址 |
http(s)://|openNW |
在【新窗口】打开网址【前提已打开浏览器】 |
http(s)://|openNB|@浏览器路径 |
用【指定浏览器】打开网址 |
|
|
1|delay |
延迟【1s】 |
.5|delay |
延迟【0.5s】 |
0.5|delay |
延迟【0.5s】 |
|
|
wait|文本或变量 |
显示等待窗口【中间】 |
waitM|文本或变量 |
显示等待窗口【中间】 |
waitLT|文本或变量 |
显示等待窗口【左上】 |
waitMT|文本或变量 |
显示等待窗口【中上】 |
waitRT|文本或变量 |
显示等待窗口【右上】 |
waitLB|文本或变量 |
显示等待窗口【左下】 |
waitMB|文本或变量 |
显示等待窗口【中下】 |
waitRB|文本或变量 |
显示等待窗口【右下】 |
|
|
getTitle|变量名 |
获取【当前标签页标题】 |
getUrl|变量名 |
获取【当前标签页网址】 |
getTabID|标签页ID |
获取【锁住的标签页的标签页ID】 |
getLTabID|标签页ID |
获取【当前活动标签页的标签页ID】 |
getWinHandle|窗口句柄 |
获取【锁住的窗口句柄】 |
getLWinHandle|窗口句柄 |
获取【当前前台窗口的窗口句柄】【这个用得多】 |
|
|
选择器|getAttr|XXX|变量名 |
获取【选择器Attr名为XXX的内容】【F12请确保真的有XXX】 |
选择器|getProp|XXX|变量名 |
获取【选择器Prop名为XXX的内容】【F12请确保真的有XXX】 |
选择器|getText|变量名 |
获取【选择器的值】【多用于输入框】 |
选择器|getInnerText|变量名 |
获取【选择器的内部文本】【多用于组件】 |
|
|
选择器|setAttr|attr|文本或变量 |
更新【选择器Attr名为attr的值为文本或变量】 |
选择器|setProp|prop|文本或变量 |
更新【选择器Prop名为prop的值为文本或变量】 |
选择器|setText|文本或变量 |
更新【选择器的值为文本或变量】【多用于输入框】 |
选择器|setInnerText|文本或变量 |
更新【选择器的内部文本为文本或变量】【多用于组件】 |
|
|
close |
关闭【当前标签页】 |
closeL |
关闭【当前标签页】 |
colseP |
关闭【上一个标签页】 |
closeA |
关闭【所有标签页】 |
closeExL |
关闭【除了当前外的所有标签页】 |
|
|
kb|模拟按键B的值 |
模拟【快捷键或单个按键】 |
kbInput|文本或变量 |
模拟【键盘输入】【与CSS脱钩,使用前请先获取焦点】 |
kbInputE|文本或变量 |
模拟【键盘输入并回车】【与CSS脱钩,使用前请先获取焦点】 |
|
|
mClick|坐标 |
模拟鼠标【左键单击】【例如:mClick|100,100】 |
mLClick|坐标 |
模拟鼠标【左键单击】 |
mMClick|坐标 |
模拟鼠标【中键单击】 |
mRClick|坐标 |
模拟鼠标【右键单击】 |
mDLClick|坐标 |
模拟鼠标【左键双击】 |
mMoveTo|坐标
|
鼠标移动到坐标位置 |
|
|
mImgClick|图片B64值
|
模拟鼠标【左键单击】图片【例如:mImgClick|图片B64值】 |
mImgLClick|图片B64值
|
模拟鼠标【左键单击】图片 |
mImgMClick|图片B64值
|
模拟鼠标【中键单击】图片 |
mImgRClick|图片B64值
|
模拟鼠标【右键单击】图片 |
mImgDLClick|图片B64值
|
模拟鼠标【左键双击】图片 |
mImgMoveTo|图片B64值
|
模拟鼠标移动到图片位置 |
mImgMoveTo|变量名|图片B64值
|
模拟鼠标移动到图片位置并返回中心坐标 |
|
|
mDragTo|S坐标|E坐标|时间
|
模拟鼠标【左键拖动】 |
mLDragTo|S坐标|E坐标|时间
|
模拟鼠标【左键拖动】 |
mMDragTo|S坐标|E坐标|时间
|
模拟鼠标【中键拖动】 |
mRDragTo|S坐标|E坐标|时间
|
模拟鼠标【右键拖动】 |
|
|
mImgDragTo|E坐标|时间|图片B64值
|
模拟鼠标【左键拖动】图片 |
mImgLDragTo|E坐标|时间|图片B64值
|
模拟鼠标【左键拖动】图片 |
mImgMDragTo|E坐标|时间|图片B64值
|
模拟鼠标【中键拖动】图片 |
mImgRDragTo|E坐标|时间|图片B64值
|
模拟鼠标【右键拖动】图片 |
|
|
activeLTab |
激活【当前标签页】并锁定ID |
activeLWin |
激活【当前前台窗口】并锁住 |
activeTab|@标签页ID |
激活【指定标签页ID的标签页】并锁住ID |
activeWin|@窗口句柄 |
激活【指定窗口为前台窗口】并锁住,标签页ID也锁为当前活动标签页 |
|
|
pClick|文本 |
点击页面所有含有“文本”的按钮 |
NEW! pClick|文本|数字N |
点击页面含有“文本”的第N个按钮【非直观数字N】 |
pReplace|文本A|文本B |
替换页面上所有含有文本A的组件的文本为文本B |
|
|
IF=|文本A或变量A|文本B或变量B |
【IF=】目前只能比对相不相等【后接真分支,直到ELSE或ENDIF】 |
ELSE |
【后接假分支,直到ENDIF】 |
ENDIF |
【结束IF,一定要写】 |
|
|
runKM|@键鼠变量名|重放倍率 |
重放使用Qk自带工具【录制的键鼠操作】 |
runJS|@JS变量名 |
在当前标签页【运行JS代码】 |
runBJS|@JS变量名 |
在当前标签页【运行后台JS代码】 |
runPy|@Py变量名 |
运行Python代码【感谢@darcyc大佬的提供!!!】 |
键鼠专区
- 模拟鼠标点击坐标
- 模拟鼠标点击图片
- 模拟鼠标拖拽
- runKM:重放键鼠
- 使用Quicker内置的键鼠录制工具
- 右键点击任务栏图标,然后选择 ,打开后如下图所示,然后点击最左侧按钮开始录制
- 录制完成点击最右侧按钮复制键鼠录制数据
- 使用「工具-插入与编辑块」
多窗口专区:active系
- 以下注意事项已过时,新版0.6.0的浏览器插件与Quicker1.32.8版本已解决下面的注意事项
- 注意事项:关于浏览器标识与浏览器控制模块本身的限制
- 浏览器A 与 浏览器B 的不同情况说明
- A 与 B 的插件标识相同 => 插件始终连接时间上「第一个打开的浏览器」(不能正常使用多窗口)
- A 开了多个窗口,无论插件标识是什么 => 插件始终连接「有焦点的那个窗口」(正常)
- A 的插件标识为 chrome,B 的插件标识为 msedge => 插件始终连接「有焦点的那个窗口」(正常)
- 国内浏览器情况说明
- 国内使用chromium框架的浏览器的插件标识都是chrome
- 所以两个及以上国产浏览器同时开着则无法正常使用多窗口,动作始终锁定的是时间上第一个打开的浏览器
- 但可以配合其他插件标识非chrome的浏览器
- 解决方法
- 使用同一个浏览器开多个窗口【例如:仅使用猎豹浏览器开n个窗口】
- 使用不同标识的浏览器开多个窗口【例如:Chrome开n个和Edge开n个;Chrome与Edge标识不一样】
- 多窗口语句节选
语句 |
说明 |
getUrl|变量名 |
获取【当前标签页网址】 |
getTabID|标签页ID |
获取【锁住的标签页的标签页ID】 |
getLTabID|标签页ID |
获取【当前活动标签页的标签页ID】 |
getWinHandle|窗口句柄 |
获取【锁住的窗口句柄】 |
getLWinHandle|窗口句柄 |
获取【当前前台窗口的窗口句柄】【这个用得多】 |
|
|
activeLTab |
激活【当前标签页】并锁定ID |
activeLWin |
激活【当前前台窗口】并锁住 |
activeTab|@标签页ID |
激活【指定标签页ID的标签页】并锁住ID |
activeWin|@窗口句柄 |
激活【指定窗口为前台窗口】并锁住,标签页ID也锁为当前活动标签页 |
- 演示GIF
- 序列代码
IF=专区
- 水平有限,暂不能实现嵌套的IF
- IF=|文本A或变量A|文本B或变量B(目前只能比对相不相等)
- showS|比对正确(真就走这里)
- ELSE(不写就是只走真)
- showM|比对错误(否就走这里)
- ENDIF(结束IF,一定要写)
runJS专区:运行脚本
- JS随便你写在什么位置,开头,末尾都行,下面为示例代码
## 只有一行代码
runJS|$(location).attr('href','http://www.baidu.com')
runBJS|chrome.tabs.update('@其他变量@', {active: true});
## 有多行代码
【【【JS变量名A
$(location).attr('href','@其他变量@') //这里的使用变量与外面不同,一定要用@@包裹
$(location).attr('href','@其他变量@')
】】】
【【【JS变量名B
chrome.tabs.update('@其他变量@', {active: true});
chrome.tabs.update('@其他变量@', {active: true});
】】】
runJS|@JS变量名A 在当前页运行js脚本
runBJS|@JS变量名B 运行后台脚本
runPy专区:运行Python代码
- 在网页运行click,text,find方法
###Py-测试
【【【Py
import quicker
tab = quicker.Browser('https://getquicker.net/')
tab.click('主页') # 就点一个
tab.click(['分享','最新更新','最多赞','截图OCR','Marcus'])
# ↑在同一个标签页ID下连续点击(如:点击了‘分享’按钮,加载完成后再点‘最新更新’按钮)
tab['Marcus'].text('wow!😎') # 修改所有Marcus为wow!😎
tab = quicker.Browser(‘https://getquicker.net/Member/Home')
result = tab.find('Email___昵称___头像') # find方法:匹配___[三个下划线]处的文本
# click和text方法有特效哦,会高亮要触发的按钮或文本
Output(result) # 输出参数,本人水平有限,输出格式仅支持文本(即所有类型默认转成文本输出)
】】】输出变量名
runPy|@Py
show|@输出变量名
##runPy对于页面目前只支持上面三个方法(即click,text,find)
- 使用本地Python库
###使用本地Python库
【【【Py
# py(开头第一行写注释# py就能在下面用本地库)
import quicker
import requests
import numpy as np
...
】】】
runPy|@Py
24k纯小白专区
- 语句拆分单词表,看完后会对语句理解有帮助
鸣谢
最近更新
修订版本
|
更新时间
|
更新说明
|
37
|
2021-11-05 00:19
|
+ pClick语句支持选择第几个,示例:pClick|动作库|2
~ 换了一个svg的矢量图标
|
36
|
2021-11-03 00:37
|
~ 尝试修复pClick
|
35
|
2021-11-02 18:10
|
+ 加密的完整序列的外部调用,使用说明看目录的「外部/调用」
|