我很难找出如何使用vba自动点击位于网页中的一组标签之一的按钮。试图点击一个按钮之内的一个网页使用vba
我在firefox中使用inspect元素来找出我想要点击的按钮的元素ID(这是“runscreen”,但当查看实际网页的源代码时,我无法找到此元素ID,此按钮也会分享此元素id与另一个选项卡上的另一个按钮,两个按钮与它们的innertext和“runscreen”具有相同的“run”作为它们的元素id,但是具有不同的元素hid。我无法弄清楚为什么可以通过检查按钮来查看元素id但是不能通过选择使用ie或firefox查看网页的源代码来查看,我的Excel版本是2010,我使用的是ie9。网页代码中唯一隐藏的部分是处理元素的部分我认为这可能与
img src="/images/new/ajax-loader-trans.gif"
我第一次尝试这样的代码:
'IE.document.getElementById("runscreen").click
,因为该元素的ID是不是直接在网页源代码,但隐藏在VBA回来,我猜测“所需的对象”的错误不知何故
那我就
Call IE.document.parentWindow.execScript("runscreen()", "JavaScript")
我觉得这个页面在点击按钮时会以某种方式使用一个函数,但我无法弄清楚这是否是这种情况。 我一直在寻找解决方案来点击按钮,但一直无法弄清楚。任何帮助将不胜感激。
这里是我找到代码时,我用Firefox来检查我试图单击该元素(但是这个代码是不可见的,当我选择IE/Firefox的查看源):
<a id="runScreen" class="general-button general-button-green help-enabled" href="javascript: void(jsScreen.runScreen(true));" onfocus="blur();" hid="screen-rules-run">
<span>
Run
</span>
和这里(查看网页源代码时仅此代码的第一行是可见的)
<div id="screentabcontent" class="tabs-nav-content ui-corner-bottom">
<div id="freeform-cont">
<div class="vocab-ref"> … </div>
</div>
<div id="screen-criteria-section">
<div id="commonCont">
<div id="commonButtons" style="padding-bottom:4px; float:left; "> … </div>
<div style="text-align:right">
<span class="parameterTitle"> … </span>
<span class="parameterValue"> … </span>
<span style="padding-left: 10px">
<a id="runScreen" class="general-button general-button-green help-enabled" href="javascript: void(jsScreen.runScreen(true));" onfocus="blur();" hid="screen-rules-run">
<span> … </span>
</a>
</span>
<span style="padding-left: 5px"> … </span>
<span id="universeTotal" class="universe-subtotal"> … </span>
</div>
<div id="commonRules" style="clear:both; zoom: 1"> … </div>
</div>
这里更多的是周围的代码是为选项卡中的代码,VI当我在ie/firefox中选择查看源时会出现错误,我尝试点击的按钮位于"rules"
选项卡中,其中元素ID为"scrtab_1"
。这段代码的最后一部分部分与上面的代码的第一部分相匹配:
<div id="screentabs" style="zoom: 1;">
<div class="tabs-nav">
<table cellpadding="0" cellspacing="0" border="0"><tr>
<td class="toggle-width"><a href="javascript:void(jsScreen.toggleWide());" onfocus="blur()"><img id="toggleScrWidth" src="/images/new/width-wide.gif" width="16" height="16" border="0" title="Toggle Display Width" alt=""/></a></td>
<td ><a id="scrtab_0" class="scr-tab-link help-enabled" hid="screen-about-user" href="javascript: void(0);" onfocus="blur()">About</a></td>
<td ><a id="scrtab_5" class="scr-tab-link help-enabled" hid="screen-notes" href="javascript: void(0);" onfocus="blur()">Notes</a></td>
<td ><a id="scrtab_7" class="scr-tab-link help-enabled" hid="screen-notes" href="javascript: void(0);" onfocus="blur()">Main Settings</a></td>
<td class="on"><a id="scrtab_1" class="scr-tab-link help-enabled" hid="screen-rules" href="javascript: void(0);" onfocus="blur()">Rules</a></td>
<td ><a id="scrtab_6" class="scr-tab-link help-enabled" hid="screen-hedge" href="javascript: void(0);" onfocus="blur()">Hedge Rules</a></td>
<td ><a id="scrtab_2" class="scr-tab-link help-enabled" hid="screen-results" href="javascript: void(0);" onfocus="blur()">Results</a></td>
<td ><a id="scrtab_3" class="scr-tab-link help-enabled" hid="screen-backtest" href="javascript: void(0);" onfocus="blur()">Backtest</a></td>
<td ><a id="scrtab_4" class="scr-tab-link help-enabled" hid="screen-advancedbacktest" href="javascript: void(0);" onfocus="blur()">Advanced Backtest</a></td>
</tr></table>
</div>
<div id="screentabcontent" class="tabs-nav-content ui-corner-bottom"><div align="center"><img src="/images/new/ajax-loader-trans.gif" alt="loading"></div></div>
</div>
</div>
</div>