如何通过ie中的vb单击此按钮?

时间:2019-01-21 13:45:37

标签: javascript html internet-explorer ie-automation

我正在尝试在内部网络中自动化Web服务客户端上的一些简单过程。这个小程序应该可以处理每个人都必须做的一些简单的单击。自动化工作正常,但第一步却使我发疯。我无法登录该服务。

这是网站上的按钮:

<a tabindex="0" class="x-btn x-unselectable x-box-item x-btn-default-small" id="button-1083" role="button" aria-disabled="false" aria-hidden="false" style="margin: 0px; left: 2px; top: 0px; width: 145px; right: auto;" hidefocus="on" unselectable="on" data-componentid="button-1083">

<span class="x-btn-wrap x-btn-wrap-default-small " id="button-1083-btnWrap" role="presentation" style="table-layout: fixed;" data-ref="btnWrap" unselectable="on"><span class="x-btn-button x-btn-button-default-small x-btn-text    x-btn-button-center " id="button-1083-btnEl" role="presentation" data-ref="btnEl" unselectable="on"><span class="x-btn-icon-el x-btn-icon-el-default-small  " id="button-1083-btnIconEl" role="presentation" data-ref="btnIconEl" unselectable="on">

</span><span class="x-btn-inner x-btn-inner-default-small" id="button-1083-btnInnerEl" data-ref="btnInnerEl" unselectable="on">Login</span></span></span></a>

我可以使用

在网站上找到该按钮
Document.getElementById("button-1083") 

但是我无法模拟“点击”。

任何帮助都将不胜感激。

3 个答案:

答案 0 :(得分:0)

如果您按照标题中的说明使用VBScript,则可以使用:

Document.getElementById("button-1083").Click()

否则,如果您使用的是javascript,而您的代码已在代码中列出:

document.getElementById("button-1083").click();

这可能是(Click Button on Webpage via VBScript?)的重复

答案 1 :(得分:0)

如果我们看到代码,则可以发现它不是实际的按钮输入,而是 / a 链接标记,其链接为 button ,其中包含< strong> span标签。

另一件事是要注意,所有标记中都包含 unselectable =“ on” 样式。这使得它不可选择。用户只有从外部开始选择时才能选择它。

参考:

unselectable attribute for div (HTML4 & HTML5)

我们可以看到只有1个span标记中包含Login文本。因此,如果您的目标是单击它,则可以尝试使用其跨度ID(即 button-1083-btnInnerEl

)进行单击

我用下面的代码对我进行了测试。我使用的是您原始帖子中的相同HTML。

Dim IE As InternetExplorer
Dim URL As String
Dim btnGo As Object

Sub Macro_1()

Set IE = CreateObject("InternetExplorer.Application")
IE.Visible = True
URL = "C:\Users\Administrator\Desktop\sample.html"
IE.navigate (URL)

Do
DoEvents
Loop Until IE.readyState = 4



Set btnGo = IE.document.forms(0).all("button-1083-btnInnerEl")
btnGo.Click

End Sub

我可以单击网页上的登录。您可以在下面的输出中看到。

enter image description here

如果我误解了您的要求,您可以进行测试并告诉我。我会尝试纠正自己。

答案 2 :(得分:0)

感谢您的努力。它没有按计划工作。您的代码选择了正确的按钮,但是我仍然无法触发click事件。选择之后,我可以按Enter键,它可以工作,但是根本找不到自动输入的方法。

Set ObjIE = getObject("new:{D5E8041D-920F-45e9-B8FB-B1DEB82C6E5E}")
objIE.Visible = True
objIE.navigate "myURL"
wscript.sleep 2000
Do while objIE.readyState <> 4
loop
Do while objIE.busy
loop
wscript.sleep 3000
Set btnGo = objIE.document.all("button-1083-btnInnerEl")
btnGo.focus

这就是我现在所拥有的。我只是不知道如何单击该按钮。我可以用Sendkeys以外的其他方式模拟按下Enter键吗?

谢谢大家的帮助。