【问题标题】:VBA click HTML button without a name?VBA单击没有名称的HTML按钮?
【发布时间】:2019-05-15 02:49:43
【问题描述】:

我正在尝试使用 VBA 在网站上单击此登录按钮,这是该按钮的 HTML:

<input type="submit" value="Login" onclick="submitForm();">

我已经把它输入我的用户名和密码,因为这些字段有名字,但我无法让它点击这个按钮,因为它没有名字。我一直在寻找,要么我不知道我在寻找什么,要么这一定不是一个常见的问题。这是我最近的尝试:

objIE.document.getElementsByName("Login")(0).Click

谢谢!

【问题讨论】:

  • objIE.document.getElementsByName("Login")[0].click();
  • @DarthMoon 语法错误我的朋友,这是使用 VBA 在 Excel 中运行的。

标签: html excel vba web-scraping


【解决方案1】:

正如您所说:您显示的元素的 HTML 中没有 name 属性。您可以使用attribute = value CSS 选择器来定位存在的属性:

objIE.document.querySelector("[onclick='submitForm();']").click

同样的意思

objIE.document.querySelector("[value=Login]").click

甚至

objIE.document.querySelector("[type=submit]").click

最后,您可以直接提交表单

objIE.document.getElementsByTagName("form")(0).submit

如果属性选择器上可以匹配的元素不止一个,则使用.querySelectorAll 将它们全部检索并索引到返回的节点列表中以获取正确的元素,例如

objIE.document.querySelectorAll("[type=submit]").item(1).click

上面的 1 将是第二个匹配的。 2 将是第三个等等。

【讨论】:

  • 这非常有效,您的回答提供了多种不同的方式来完成任务。感谢您提供多种差异,我相信这个答案将来会对许多人有所帮助。谢谢!
猜你喜欢
  • 1970-01-01
  • 2016-01-30
  • 2015-11-02
  • 1970-01-01
  • 2023-03-31
  • 2020-04-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多