【问题标题】:Get IE to click on a LI link with VBA EXCEL用VBA EXCEL让IE点击一个LI链接
【发布时间】:2018-03-29 08:10:59
【问题描述】:

我正在尝试让我的代码单击 javascript li 链接或执行 javascript 代码,其中任何一个都可以解决我的问题。

这是我的代码:

Sub submitlogin()

Dim IE As Object
    Set IE = CreateObject("InternetExplorer.Application")
    IE.Visible = True
    IE.Navigate "http://blablabla/"


 While IE.busy: DoEvents: Wend
 On Error Resume Next


IE.Document.getElementsByTagName("a").Item(4).Click 'doesn´t work

我也试过了:

IE.Document.parentWindow.execScript "checkcontained();", "javascript" 'also not working

并尝试过:

 Set ObjA = IE.Document.getElementByID("foldinglist").getElementsByTagName("a")(0)
  ObjA.Click 'also not working


  End Sub

这是 HTML:

<body class="menu">
<div id="menu">
    <div align="left" id="text" style="position:absolute;top:0px;left:40px; width: 200px; height: 19px;display:none;"><strong><b>[TimeS]</b></strong></div>
    <div align="left" id="idMenu" style="position:absolute;top:18px;left:7px; width: 200px; height: 19px; display:none;"></div>
<div id="treeview">
<div id="menu_d">
<ul style=""><li id="foldheader0" onClick="JavaScript: checkcontained();">time control
<ul id="foldinglist" style="DISPLAY:none;" onClick="JavaScript: checkcontained();"><li id="foldheader1" onClick="JavaScript: checkcontained();">Maintenance
<ul id="foldinglist" style="DISPLAY:none;" onClick="JavaScript: checkcontained();"><li><a href="JavaScript: chamaPagina('../../thisthat.asp', '');">admin</a></li></ul></li>
<li id="foldheader1" onClick="JavaScript: checkcontained();">Consult/Reports
<ul id="foldinglist" style="DISPLAY:none;" onClick="JavaScript: checkcontained();"><li><a href="JavaScript: chamaPagina('../../thisthat_redir.asp', '');">Demonst time</a></li></ul></li>
<li id="foldheader1" onClick="JavaScript: checkcontained();">help
<ul id="foldinglist" style="DISPLAY:none;" onClick="JavaScript: checkcontained();"><li><a href="JavaScript: chamaPagina('../thisthose.html', '');">PortariRE</a></li></ul></li>

        </ul>
        <form name="frmMenu"><input type="hidden" id="txtmaxnivel" name="txtmaxnivel" value="1" /></form>

我必须在此处单击(或执行):

<ul id="foldinglist" style="DISPLAY:none;" onClick="JavaScript: checkcontained();"><li><a href="JavaScript: chamaPagina('../../thisthat_redir.asp', '');">Demonst time</a></li></ul></li>

【问题讨论】:

  • 本题与java无关。我已经为你删除了标签。
  • QHarr,这不起作用,它是网站上的一个可扩展列表,“foldinglist”只有在首先单击“foldheader0”之后才可用,然后单击此处:“foldheader1”。它打开级联样式...我不知道这是否有所不同,但我确实在两个链接上都尝试了您的解决方案(首先在级联上和我真正想要的那个):IE.Document.getElementByID(“foldinglist”)。单击并 IE.Document.getElementByID("foldinglist").Click 但没有成功
  • 是内部网址还是公共网址?
  • 这是一个内部链接,在公司内部网上,但是,浏览器上的 URL 没有变化,所以我不能简单地“IE.navigate to”
  • 级联(树视图)是这样的:link

标签: excel vba


【解决方案1】:

也许这篇文章可以提供帮助: How to do onclick event in VBA/VBScript

但是,如果您尝试使用 FireEvent,在我看来您应该使用 ul 标签上的事件。

【讨论】:

    猜你喜欢
    • 2021-10-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多