标题:VB6.0在网页弹窗登录界面自动填表失败,如何解决
只看楼主
zt5101314
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2023-3-22
 问题点数:0 回复次数:7 
VB6.0在网页弹窗登录界面自动填表失败,如何解决
网页主页https://XXXX.
内嵌框架网页https://XXXX.(此网页单独登录提示失败,需点击主页右上角“登录”来登录账号)
问题描述:VB6.0在网页弹窗登录界面自动填表失败,代码如下。
Private Sub Command1_Click()
Randomize
On Error Resume Next
Dim a As Variant
Dim Vdoc As MSHTML.HTMLDocument
Set Vdoc = WebBrowser1.document
   For Each a In Vdoc.getElementsByTagName("input")
        Select Case a.Name
            Case "username"
                a.Value = "13888888888"
            Case "password"
                a.Value =  "123456"
            Case "vertifyCode"
                a.Value = "1234"
        End Select
   Next
WebBrowser1.document.getElementById("LoginBtn").Click
这个问题源于弹窗中的登录表单是在iframe中,而WebBrowser控件默认只能访问主框架的document,求助大佬解决:实现获取到iframe的document,完成自动填表?

[此贴子已经被作者于2023-3-22 22:11编辑过]

搜索更多相关主题的帖子: 登录 自动 填表 网页 失败 
2023-03-22 20:24
阳光上的桥
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:版主
威 望:25
帖 子:82
专家分:525
注 册:2023-1-12
得分:0 
根据情况,选择下面的方式访问框架内文档:

WebBrowser1.document.getElementsByTagName("iframe")(0).contentWindow.document
WebBrowser1.document.getElementByTagId("iframeid").contentWindow.document
2023-03-23 09:06
wds1
Rank: 11Rank: 11Rank: 11Rank: 11
等 级:贵宾
威 望:49
帖 子:393
专家分:2025
注 册:2016-3-10
得分:0 
利用主框架和子框架ID定位或者名称定位。

支持多框架,下面示例:
1、获取一层框架oaStartFrm的子框架;
2、获取二层框架frame的mainframe的框架
3、获取3层框架的input标签,当然也可以获取ID什么的
WebBrowser1.Document.getElementById("oaStartFrm").contentDocument.getElementsByTagName("frame")("mainFrame").contentDocument.getElementsByTagName("input")

[此贴子已经被作者于2023-3-23 12:44编辑过]

2023-03-23 11:41
kings12333
Rank: 2
等 级:论坛游民
帖 子:112
专家分:59
注 册:2012-11-29
得分:0 
MS都不更新IEB ,以后有些网页WebBrowser控件都打不开怎么办?
2023-03-23 19:16
风吹过b
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
等 级:贵宾
威 望:364
帖 子:4912
专家分:29900
注 册:2008-10-15
得分:0 
方法一
在 iframe 的话,在 WebBrowser 载入完成事件中,判断每次完成的网页的URL,如果为 iframe 里指定地址时,保存 对象
同时 点亮登录按钮。
每载入网页时,这个事件会触发 iframe + 1 次事件,最后一个为最外层URL载入完成。
我一般用这个,如以前 盛大页游 登录 就是这样的。我填表用的是 JS 函数,更简洁一些。

方法二,遍类 WebBrowser  的 iframe ,根据URL来判断是不是要的那个,是,对 对象进行操作。
也就是3楼的方法

授人于鱼,不如授人于渔
早已停用QQ了
2023-03-23 20:34
独木星空
Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20
来 自:河北省曲阳县
等 级:版主
威 望:57
帖 子:713
专家分:556
注 册:2016-6-29
得分:0 
回复 5楼 风吹过b
在这个论坛上,风吹过b是我最敬佩的人物。有能力,更有实力。

素数问题的解决是我学习编程永恒的动力。
2023-03-25 21:17
牛掰
Rank: 2
等 级:论坛游民
帖 子:28
专家分:87
注 册:2020-4-17
得分:0 
回复 6楼 独木星空
是更有时间
2023-03-27 16:02
zt5101314
Rank: 1
等 级:新手上路
帖 子:2
专家分:0
注 册:2023-3-22
得分:0 
统一回复,此代码已解决登录问题。
Private Sub Command1_Click()
Dim Vdoc As mshtml.HTMLDocument
Set Vdoc = WebBrowser1.document
Vdoc.frames(1).document.All("username").Value = Text1.Text
Vdoc.frames(1).document.All("password").Value = Text2.Text
Vdoc.frames(1).document.All("vertifyCode").Value = Text3.Text
Vdoc.frames(1).document.getElementById("LoginBtn").Click
End Sub
2023-03-28 07:50



参与讨论请移步原网站贴子:https://bbs.bccn.net/thread-511639-1-1.html




关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.049232 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved