【问题标题】:VBA Webbrowser Button Click for AutomationVBA Webbrowser 按钮单击以实现自动化
【发布时间】:2015-07-06 17:31:38
【问题描述】:

下面几行是完整的代码。

[问题] VBA 表单显示 Google 并输入“最佳收音机”的值并单击按钮。 1) 但是在输入“最佳电台”的成功谷歌页面后出现 438 错误。 2)“谷歌搜索”按钮被点击,但只有当我按下回车键时,谷歌才会显示搜索结果。

Option Explicit
Dim objIE
Private Sub CommandButton1_Click()
Set objIE = CreateObject("InternetExplorer.Application")
objIE.Top = 0
objIE.Left = 0
objIE.Width = 800
objIE.Height = 600
objIE.Addressbar = 0
objIE.StatusBar = 0
objIE.Toolbar = 0
objIE.Visible = True
objIE.Navigate ("http://www.google.com")

Do
DoEvents
Loop Until objIE.ReadyState = 4
     objIE.Document.GetElementByID("lst-ib").Value = "best radio"
     objIE.Document.GetElementsByName("btnK").Click
     SendKeys "{ENTER}"


Do
DoEvents
Loop Until objIE.ReadyState = 4
MsgBox "complete"


End Sub

【问题讨论】:

  • 当我删除objIE.Document.GetElementsByName("btnK").Click 时,Google 页面正常打开,并显示了“最佳电台”的结果。我想问题在于他们的页面是交互式的,甚至在您点击“Enter”之前就自动从主页更改为结果页面。从而删除了btnK 按钮,然后您将无法再单击该按钮。这就是 Excel 失败的原因。
  • 谢谢!你是对的!
  • 我怎样才能给你打勾?我找不到它。
  • 你不能勾选 cmets。我在下面添加了一个答案,刻度线在向上/向下箭头下方。单击灰色勾号将答案标记为已接受。谢谢:-)

标签: javascript excel vba automation getelementsbyname


【解决方案1】:

删除objIE.Document.GetElementsByName("btnK").Click。然后,Google 页面会正常打开,并显示“最佳收音机”的结果。

解释:问题在于他们的页面是交互式的,甚至在您点击“Enter”之前就自动从主页更改为结果页面。因此,btnK 按钮被删除,您不能再单击(但正在尝试)。这就是 Excel 失败的原因。

【讨论】:

  • 你能在不同的网站上解决同样的问题吗?让我发布它。希望你能在其他人之前做到这一点。美好的一天!
猜你喜欢
  • 1970-01-01
  • 2011-09-08
  • 1970-01-01
  • 1970-01-01
  • 2013-02-13
  • 2014-02-27
  • 1970-01-01
  • 2016-11-05
  • 2020-03-07
相关资源
最近更新 更多