Foxtable(狐表)用户栏目专家坐堂 → [杰哥的免费分享] 狐表自动打开网页并填入账号密码(仅适用IE浏览器)


  共有104人关注过本帖树形打印复制链接

主题:[杰哥的免费分享] 狐表自动打开网页并填入账号密码(仅适用IE浏览器)

帅哥哟,离线,有人找我吗?
chen37280600
  1楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:六尾狐 帖子:1290 积分:8063 威望:0 精华:4 注册:2017/12/31 14:53:00
[杰哥的免费分享] 狐表自动打开网页并填入账号密码(仅适用IE浏览器)  发帖心情 Post By:2025/4/20 20:06:00 [只看该作者]

(快速浏览杰哥分享过的所有经验汇总,点击跳转


前言:之前论坛也有一些帖子,不过基本是基于JQuery年代的,有些方法已经不再适应现在的Vue/React之类的异步加载网站,所以我整合并做了优化改进。
虽然IE浏览器已经有些过时,不过刚好遇到有狐友需要,顺便做得整合。

1需求
自动打开网页,点击登录按钮,到了登录窗口,输入账号密码
(由于狐表.net版本的限制,只能调用IE浏览器,无法控制第三方Chrome浏览器)


此主题相关图片如下:1.png
按此在新窗口浏览图片


此主题相关图片如下:2.png
按此在新窗口浏览图片

2实现代码
1)全局代码

以下内容只有回复后才可以浏览

2)业务代码

'1关闭所有相关的IE浏览器,免得重复出错
Dim shell As Object = CreateObject("Shell.Application")
Dim win As Object
For Each win In shell.Windows
    If InStr(win.FullName, "iexplore.exe") > 0 Then
        If InStr(win.LocationURL, "etax.zhejiang.chinatax.gov.cn") > 0 Then '这里改成你的业务域名,不需要http
            win.Quit
            Exit For
        End If
    End If
Next

'2初始化新的IE浏览器
Dim ie As Object = CreateObject("InternetExplorer.Application")
ie.Visible = True

'3先登录首页
ie.Navigate("https://etax.zhejiang.chinatax.gov.cn:8443/") '这里改成你的业务网址
Sleep(4000) '由于这是个Vue异步加载的页面,要给时间它异步加载(如果网络差,建议延长)

'4点击登录按钮,跳转到登录窗口
Dim Spans = ie.Document.GetElementsByTagName("span")
For Each Span As Object In Spans
    If Span.GetAttribute("class").ToString = "loginBtnText" Then
        Span.Click 
    End If 
Next 
Sleep(4000) '等异步加载

'5找到账号密码,并输入
Dim Inputs = ie.Document.GetElementsByTagName("input")
For Each Input As Object In Inputs
    Select Case Input.GetAttribute("placeholder").ToString 
        Case "统一社会信用代码/纳税人识别号"
            input.Focus()
            Sleep(300) ' 延迟让focus生效
            SendKeys.SendWait("914400007578948436")
        Case "居民身份证号码/手机号码/用户名"
            input.Focus()
            Sleep(300) ' 延迟让focus生效
            SendKeys.SendWait("13427100453")
        Case "个人用户密码"
            input.Focus()
            Sleep(300) ' 延迟让focus生效
            SendKeys.SendWait("123")
    End Select 
Next


此主题相关图片如下:3.png
按此在新窗口浏览图片

3关键技术点
1)先关闭相关浏览器
重复打开IE浏览器,会导致获取元素异常(例如报错`RPC 服务器不可用。 (异常来自 HRESULT:0x800706BA)`),
所以要先关闭好

'1关闭所有相关的IE浏览器,免得重复出错
Dim shell As Object = CreateObject("Shell.Application")
Dim win As Object
For Each win In shell.Windows
    If InStr(win.FullName, "iexplore.exe") > 0 Then
        If InStr(win.LocationURL, "tpass.zhejiang.chinatax.gov.cn") > 0 Then '这里改成你的业务域名,不需要http
            win.Quit
            Exit For
        End If
    End If
Next


2)异步加载
这是个主流的Vue页面,采用异步加载。所以我们要适当等待,等待元素加载出来,而**不能单纯通过以下代码**,判断浏览器就绪,否则容易获取不到元素而报错
Do While ie.busy Or ie.readystate <> 4
    Application.DoEvents
Loop

3)定位元素
利用Dim Inputs = ie.Document.GetElementsByTagName("input")找到某种元素的集合,例如这里找到所有的input标签元素。
然后我们去看下要定位的元素,有什么特征。在浏览器按F12,进入网页元素控制台

此主题相关图片如下:4.png
按此在新窗口浏览图片

4)模拟点击
找到元素后,可以模拟点击
Dim Spans = ie.Document.GetElementsByTagName("span")
For Each Span As Object In Spans
    If Span.GetAttribute("class").ToString = "loginBtnText" Then
        Span.Click 
    End If 
Next 

5)模拟输入
找到元素后,可以模拟键盘输入
Dim Inputs = ie.Document.GetElementsByTagName("input")
For Each Input As Object In Inputs
    Select Case Input.GetAttribute("placeholder").ToString 
        Case "统一社会信用代码/纳税人识别号"
            input.Focus()
            Sleep(300) ' 延迟让focus生效
            SendKeys.SendWait("914400007578948436")
    End Select 
Next


注意:Vue/React 前端动态框架阻止了直接 DOM 注入生效的现象,所以狐表论坛里,以下传统的写法是失效的
'这种是失效的
Dim inputs = ie.Document.GetElementsByTagName("input")
For Each input As Object In inputs
    If input.getAttribute("placeholder") = "个人用户密码" Then
        input.setAttribute("value", 123) 
    End If
Next


此主题相关图片如下:5.png
按此在新窗口浏览图片

=====================================================================
杰哥免费分享的web系统






===============================================================
顺便总结以前分享过的帖子,方便大家学习

联系QQ:2385350359


经验分享:























[此贴子已经被作者于2025/4/20 20:14:55编辑过]

 回到顶部
帅哥哟,离线,有人找我吗?
程兴刚
  2楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信 一级勋章
等级:超级版主 帖子:7291 积分:41024 威望:0 精华:16 注册:2008/8/31 23:23:00
  发帖心情 Post By:2025/4/20 20:11:00 [只看该作者]

还没用到,只要是为了支持狐表的发展中深造,但必须顶起来!

 回到顶部
帅哥哟,离线,有人找我吗?
冷泉
  3楼 | 信息 | 搜索 | 邮箱 | 主页 | UC


加好友 发短信
等级:小狐 帖子:399 积分:3233 威望:0 精华:0 注册:2019/4/13 16:10:00
  发帖心情 Post By:2025/4/21 9:29:00 [只看该作者]

顶顶!!!!!

 回到顶部