【问题标题】:How can I find an element without an ID in HTML for VBA code?如何在 VBA 代码的 HTML 中找到没有 ID 的元素?
【发布时间】:2018-01-01 20:25:28
【问题描述】:

目的是通过VBA代码将登录名和密码写入网站。我卡在没有 id 的线路上。

以下是来自网站的 HTML 部分,在指出有趣的框/窗口后,登录出现的位置(在我们在键盘上写下之后):

<input propdescname="login" width="0" class="prePopulatedCredentials" 
type="text" size="30" maxLength="127" jQuery15206231273379102914="6" 
autocomplete="off" spellcheck="false" autofocus="true"/>

当我尝试从 VBA 级别找到一个框/窗口来放置此登录时 - 出现了问题,因为没有 ID。 我尝试使用属性“名称”但它失败了IE.Document.getElementByName("login").innerHTML = "name"- 出现运行时错误 438,对象不支持此属性或方法。

同样的问题是窗口/框密码。 它的代码行如下:

<input propdescname="passwd" width="0" class="prePopulatedCredentials" 
type="password" size="30" maxLength="127" autocomplete="off" 
spellcheck="false"/>

按钮登录没有问题,因为它有一个id:

<input class="custombutton login_page" id="Log_On" type="submit" 
jQuery15206231273379102914="9" value="Log On"/>
IE.Document.getElementById("Log_on").Click

我有 IE8。我读到当我安装 IE11 时有更多的可能性。但也许有人可以帮助我在 IE8 中找到解决方案?

【问题讨论】:

  • 你试过getElementsByClassName吗?
  • 这不是问题,因为可以访问子元素(0)(1)

标签: excel vba internet-explorer internet-explorer-8


【解决方案1】:

你能试试看它是否适合你吗?

Dim UserName As Object
Dim PW As Object

Set UserName = IE.document.getElementsByClassName("prePopulatedCredentials")(0)
UserName.Value = "Your User Name"

Set PW = IE.document.getElementsByClassName("prePopulatedCredentials")(1)
PW.Value = "Your Password"

【讨论】:

    【解决方案2】:

    感谢您的回答。我充满感激! 但与此同时,我发现了一条线,它有效!它是:

    IE.Document.forms(0).all("login").Value = "my login"

    IE.Document.forms(0).all("passwd").Value = "password"
    

    我尝试关注下面的这个视频(这家伙太棒了:)),但是关于登录名/密码的推荐对我不起作用。 https://www.youtube.com/watch?v=0vwb_OaT2e0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-10-03
      • 2017-06-16
      • 1970-01-01
      • 2010-09-19
      • 2017-05-23
      • 2018-04-29
      • 1970-01-01
      • 2021-04-12
      相关资源
      最近更新 更多