我很難找出如何使用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>