教程最后附按键源码,欢迎新手学习-
在抖音上关注“按键精灵”(抖音号:GUKOOHOT),我们将不定期发布各类办公中、生活里会用到的脚本小技巧,本篇教程小视频,已发布于抖音,欢迎观看! |
如何将EXCEL里的信息自动填写到网页表单里?想让按键精灵帮你告别繁琐操作,继续往下看~
一、脚本思路
这次的脚本功能上比较简单,简单的分就只有两个步骤:
1、读取Excel表格数据
2、打开浏览器把数据逐条填入网页
二、插件命令命令名称:网页_设置输入框 命令功能:向网页中指定特征的文本框输入内容 命令参数:参数1【必选】:字符串,输入内容 参数2【必选】:字符串,元素特征 返回值: 无 |
命令名称: 网页_元素是否存在 命令功能: 获取网页元素对象,判断指定特征的网页元素是否存在,并返回匹配的个数 命令参数: 参数1【必选】:字符串,元素特征 返回值: 整数型,返回匹配数 |
命令名称: 网页_元素是否显示 命令功能: 获取网页元素对象,判断指定特征的网页元素是否显示 命令参数: 参数1【必选】:字符串,元素特征 返回值: 逻辑型,是否显示 |
这次为了处理验证码的问题,还需要用到按键精灵自带的窗口查找插件【Window.dll】
命令名称:Find 查找窗口 命令功能: 查找窗口类名或者标题 命令参数: 参数1 字符串型,窗口类名 参数2 字符串型,窗口标题 返 回 值: 整数型,窗口句柄 |
命令名称:FindEx 查找子窗口 命令功能:根据父窗口句柄查找子窗口匹配类名或者匹配标题 命令参数:参数1 整数型,父窗口句柄 参数2 整数型,子窗口句柄 参数3 字符串型,匹配类名 参数4 字符串型,匹配标题 返 回 值:整数型,句柄 |
命令名称:GetWindowRect 窗口边框大小 命令功能:得到窗口句柄的边框大小(包括标题栏) 命令参数:参数1 整数型,窗口句柄 返 回 值:字符串型,边框大小(包括标题栏) 注:返回为:边框窗口左角X坐标|边框窗口左上角Y坐标|边框窗口右下角X坐标|边框窗口右下角Y坐标 |
三、脚本实现
这次脚本的大部分功能都是很简单的调用命令而已:
1、读取Excel表格内容
2、在网页中相应的元素里填入相应的内容
这部分的内容大家可以直接看看源码就能了解,但由于这次提交表单过程中有遇到验证码,所以这里主要说下遇到的验证码的解决思路:
在点击提交表单后会弹出验证码的提示- 您所在的用户组无法下载或查看附件
可以使用【网页_元素是否存在】命令来识别是否出现了这个提示。
- 您所在的用户组无法下载或查看附件
接下来使用网页元素点击来点击这个验证码长条,就会出现滑块验证。
- 您所在的用户组无法下载或查看附件
首先,先定位到这个白色的滑块元素,取这个元素的坐标- // 获取滑块的位置
- 返回值 = 神梦_网页填表.网页_取元素信息("offset","//*[@id=""nc_1_n1z""]")
- 返回值 = split(返回值, "|")
- Dim x, y
- x = CInt(返回值(0)) : y = CInt(返回值(1))
- TracePrint "滑块位置是:" & x & ", " & y
复制代码 需要注意的是,这里获取到的滑块的坐标并不是在屏幕上的坐标,而是这个滑块在浏览器客户区里的坐标,是已浏览器为起始点的相对坐标。
要获取这个滑块的屏幕绝对坐标,那就需要先获取浏览器窗口的坐标,然后把浏览器窗口的坐标+滑块的相对坐标,得到的就是滑块在屏幕上的绝对坐标,这样就能直接用鼠标来操作。
- // 转换相对坐标为屏幕绝对坐标
- Dim Handle_Chrome, Handle_ChromeClient
- Handle_Chrome = Window.Find("Chrome_WidgetWin_1", "按键精灵自动填表示例 - Google Chrome")
- If Handle_Chrome > 0 Then
- Handle_ChromeClient = Window.FindEx(Handle_Chrome, 0, "Chrome_RenderWidgetHostHWND", "Chrome Legacy Window")
- If Handle_ChromeClient > 0 Then
- 返回值 = Window.GetWindowRect(Handle_ChromeClient)
- 返回值 = split(返回值, "|")
- x1 = CInt(返回值(0)) : y1 = CInt(返回值(1))
- TracePrint "浏览器窗口位置是:" & x1 & ", " & y1
- Call 轨迹移动(x + x1 + 10, y + y1 + 10, x + x1 + 10 + 270, y + y1 + 10, 1)
- End If
- End If
- Function 轨迹移动(x1, y1, x2, y2, t)
- MoveTo x1, y1
- LeftDown 1
- k = (y1 - y2) / (x1 - x2)
- b = y1 - k * x1
- For x = x1 To x2 Step sgn(x2 - x1)
- MoveTo x, (k * x + b)
- Delay t
- Next
- LeftUp 1
- End Function
复制代码
1、通过窗口查找命令查找浏览器主窗口句柄
2、通过查找子窗口命令找到浏览器的客户区句柄
3、获取客户区位置坐标
4、客户区的起始坐标 + 滑块相对坐标 = 滑块在屏幕上的绝对坐标
5、通过鼠标命令来模拟滑块滑动完整源码下载: - 您所在的用户组无法下载或查看附件
关注按键精灵抖音号,我们将不定期发布各类办公中、生活里会用到的脚本小技巧哦~