我在访问嵌套在帧内的元素时遇到了问题。我可以访问表单输入用户名和密码。我尝试过很多不同的方法,购买似乎只能访问外部表单标签,而不是内部框架集中的标签。
在这里可以看到一些方法:
Public IE As InternetExplorer
Public ieDoc As HTMLDocument
Sub main()
Dim frm As HTMLWindow2
Set IE = New InternetExplorerMedium
IE.Visible = True 'We will see the window navigation
Dim pword As String
IE.navigate ("http://tdw-
piso.tdbank.ca/pisoweb/backoffice/piso/htdocs/pisomain.htm")
While IE.ReadyState <> 4 Or IE.Busy: DoEvents: Wend '*****WAIT
Do While IE.Busy: DoEvents: Loop
Do Until IE.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
Set ieDoc = IE.Document.getElementsByTagName("frame")(2)
' For Each frm In IE.Document.frames
' If frm.Name = "Body" Then
' Set ieDoc = frm.Document
' End If
' Next frm
MsgBox ieDoc.getElementsByTagName("frame")(1).Name
'Document.getElementsByTagName("frame")(1).Name
With ieDoc.forms("logon")
.elements("userid").Value = "test"
.elements("password").Value = InputBox("Please Enter Your password: ")
'.submit
End With
While IE.ReadyState <> 4 Or IE.Busy: DoEvents: Wend '*****WAIT
End Sub
我刚开始使用HTML,很难弄清楚结构和如何访问嵌套在其他元素中的元素。任何帮助都将不胜感激。
发布于 2018-08-09 11:27:11
你在尝试破译一组html框架,以便访问登录表单和输入凭据。
但是,如果你查看嵌套子框架的html源代码,其中包含<form name="logon" action=...>你将看到它是对等级logon.htm源文件中的包含。
<frame src=logon.htm name=...
因此,与其转到他们希望你访问的标准登陆页,不如直接转到logon.htm页面。
...
IE.navigate ("http://tdw-piso.tdbank.ca/pisoweb/backoffice/piso/htdocs/logon.htm")
...
这并不总是有效的,因为有一些方法可以防止直接调用logon.htm之类的框架源页面,但在我的经验中,它总是值得一试的。如果你可以直接访问框架源页面,你将得到更快的加载(没有多余的垃圾需要处理),也没有要导航的嵌套框架。
https://stackoverflow.com/questions/-100002035
复制相似问题