首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用VBA自动登录cibc投资者边缘

使用VBA自动登录cibc投资者边缘
EN

Stack Overflow用户
提问于 2015-07-04 00:12:42
回答 1查看 74关注 0票数 2

您好,我正在编写代码,以自动登录到CIBC投资者边缘和我的代码只打开cibc投资者页面。我有一种感觉,这是我调用用户名和密码值的方式的问题。下面是通用代码和CIBC上被检查元素的元素快照。

代码语言:javascript
复制
Dim HTMLDoc As HTMLDocument
Dim MyBrowser As InternetExplorer

Sub MyInvEdge()

Dim MyHTML_Element As IHTMLElement
Dim MyURL As String
On Error GoTo Err_Clear
MyURL = "https://www.investorsedge.cibc.com/ie/"
Set MyBrowser = New InternetExplorer
Myrowser.Silent = True
MyBrowser.navigate MyURL
MyBrowser.Visible = True
Do
Loop Until MyBrowser.readyState = READYSTATE_COMPLETE
Set HTMLDoc = MyBrowser.document
HTMLDoc.all.userID.Value = "my ID"
HTMLDoc.all.userPassword.Value = "my password"
For Each MyHTML_Element In HTMLDoc.getElementsByTagName("input")
If MyHTML_Element.Type = "Sign On" Then MyHTML_Element.Click: Exit For
Next

Err_Clear:
If Err <> 0 Then
Err.Clear
Resume Next
End If

End Sub

这两个元素的HTML代码如下:

代码语言:javascript
复制
<input name="userID" tabindex="3" id="userID" onkeydown="keyPressedEvt
(event,'newUserID');" type="text" maxlength="25" autocomplete="off">

<input name="userPassword" tabindex="4" id="userPassword" type="password"
 maxlength="12" autocomplete="off">

请帮我解决这个登录问题。谢谢,

EN

回答 1

Stack Overflow用户

发布于 2015-07-04 00:17:57

我认为:

代码语言:javascript
复制
HTMLDoc.all.userID.Value = "my ID"

应该是这样的

代码语言:javascript
复制
HTMLDoc.GetElementByID("userID").Value ="my ID"

(密码相同)

另外,在等待页面加载时,使用DoEvents将控制传递回处理器:

所以就像这样

代码语言:javascript
复制
While MyBrowser.ReadyState <> READYSTATE_COMPLETE
    DoEvents
Wend

而不是

代码语言:javascript
复制
Do
Loop Until MyBrowser.readyState = READYSTATE_COMPLETE

最后,我不确定"Sign On“是不是一个超文本标记语言元素,所以在这里使用.Type是行不通的:

代码语言:javascript
复制
MyHTML_Element.Type = "Sign On"

但是你还没有展示它的HTML ...

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/31210829

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档