Html VBA单击IE中的登录按钮
我不太熟悉从IE中获取元素,但我在直截了当的情况下取得了成功。我现在使用的网站让我很困惑 我正在启动一个站点并输入用户名和密码,然后我想单击“登录”按钮,但我找不到正确的方法来定位并单击该按钮,因为它没有ID 我在这个网站上看到过很多有类似问题的帖子,我试着按照这些帖子中的建议去做,但仍然无法让它发挥作用 我将分享我的代码和网站上的元素信息Html VBA单击IE中的登录按钮,html,vba,excel,internet-explorer,Html,Vba,Excel,Internet Explorer,我不太熟悉从IE中获取元素,但我在直截了当的情况下取得了成功。我现在使用的网站让我很困惑 我正在启动一个站点并输入用户名和密码,然后我想单击“登录”按钮,但我找不到正确的方法来定位并单击该按钮,因为它没有ID 我在这个网站上看到过很多有类似问题的帖子,我试着按照这些帖子中的建议去做,但仍然无法让它发挥作用 我将分享我的代码和网站上的元素信息 Dim IEapp As InternetExplorerMedium Dim divClassLogin As Object Set IEapp = Ne
Dim IEapp As InternetExplorerMedium
Dim divClassLogin As Object
Set IEapp = New InternetExplorerMedium
With IEapp
.Navigate "http://ctdayppv02/PVE.aspx"
.Visible = True
.AddressBar = 0
.StatusBar = 0
.Toolbar = 0
.MenuBar = 0
.Height = 700
.Width = 950
End With
Do While IEapp.Busy: DoEvents: Loop
Do Until IEapp.ReadyState = READYSTATE_COMPLETE: DoEvents: Loop
IEapp.Document.all.Item("txtUserName").Value = "Name"
IEapp.Document.all.Item("txtPassword").Value = "Pass"
IEapp.Document.all.Item("btnLogin").Click
这是IE检查元素html
这是Chrome Inspect元素html
我在本网站上引用的帖子包括:
有人能帮我确定单击登录时应该查看的元素吗?我习惯于寻找一个ID或写着“提交”的东西,但我在这个网站上没有看到
提前谢谢。因为我无法访问URL。我只是拿出我通常做的代码(没有测试),对我来说是最灵活的方式,尽管它相当长。请尝试:
Dim ee as Variant, htmldoc
Set htmldoc= IEapp.document
For each ee in htmldoc.getElementsByTagName("span")
If ee.className = "dijitReset dijitInline dijitButtonNode" And InStr(ee.innerHTML, "btnLogin") > 0 Then 'not sure whether innerhtml or outerhtml you need tp check in your watches
ee.Click: DoEvents: Sleep 1000
''or u can try this
ee.FireEvent ("onclick"): DoEvents: Sleep 1000
Exit For
End If
Next ee
我在html中也没有看到一个按钮,而且url似乎不可访问,至少是公开的。这是你文章中的实际URL吗?在任何情况下,右键单击Firefox或Chrome中的网页并选择Inspect元素,然后用该元素更新您的帖子html@Absinthe谢谢你看。首先,这是我代码中的实际URL。不确定您是否可以在公司内部网之外访问它。其次,我更新了我的帖子,加入了Chrome显示的内容。顶部突出显示的元素可以通过ieApp.document.querySelector(“span[widgetId=btnLogin]”选择。Click@QHarr谢谢你的反馈。我尝试了两个
ieApp.document.querySelector(“span[widgetId=btnLogin]”)。单击
和ieApp.document.querySelector(“input[name=btnLogin]”)。单击
会得到相同的错误…对象不支持此属性或方法
,因此可能我缺少了一些东西,然后这些就可以工作了。另外,对于这些图像,我感到抱歉。我以前没有使用过snippet工具,也不知道它的存在。在我声明64位的Sleep
后,它确实起了作用。奇怪的是,这会让我登录到网站,但不会加载如果我手动登录通常会出现的主表单。然而,侧边栏导航仍然存在并且可以访问,因此我将在侧边栏中单击相应的链接并从那里开始。将此标记为已接受,因为它以某种方式让我登录,这是我的问题。非常感谢!很高兴知道这有助于解决您的问题!不客气。关于它指向其他页面,我不能解释太多,因为这取决于网站本身的互动事实上,它似乎正在加载正确的形式了。我想这是网页的暂时问题。无论哪种方式,我都会从侧边栏中选择正确的形式,以确保我在正确的位置。再次感谢。