2015-01-07 68 views
0

我試圖插入數據到搜索字段,然後單擊搜索按鈕。我試過getElementsByid("SiteSearchForm_SearchBtn")(0).ClickgetElementsByclassname("searchBtn")(0).Click網站上的搜索按鈕將不會單擊VBA

HTML

<div class="searchBtn"><a href="#search" id="SiteSearchForm_SearchBtn">Search</a></div> 

VBA代碼

With IE 
     .Visible = True 
     .Navigate URL_1 
     Do Until .ReadyState = 4 
     DoEvents 
     Loop 

     Application.Wait (Now + TimeValue("0:00:02")) 
      IE.Document.getelementsbyclassname("hint hint-search")(0).Value = "Eliroyal2$" 
      IE.Document.getElementsByid("SiteSearchForm_SearchBtn")(0).submit 

     Application.Wait (Now + TimeValue("0:00:10")) 

End With 
+0

將0放在方括號中,並按類別嘗試獲取元素。「(」hint hint_search「)[0]'並且第四次編輯的元素不爲零。 getElementById並創建I資本 – Billy

回答

0

不具有URL,我會說,之所以這行代碼不能工作:

IE.Document.getElementsByid("SiteSearchForm_SearchBtn")(0).submit 

是雙重的編輯。

1)這是getElementById,而不是Elements;

2)該函數返回一個單一的元素,所以你並不需要訪問一個集合與(0)

如果你確信你的ID,只是嘗試:

IE.Document.getElementByid("SiteSearchForm_SearchBtn").Click 

。另外,請向我們提供我們解決問題的網址。

編輯

根據您所提供的HTML行,你不能僅僅因爲你得到的元素是<div>元素,它不支持Click事件獲得通過類名的元素。 默認情況下,div沒有屬性cursor:pointer,因爲它被認爲是「容器」。該鏈接(即<a>)默認爲可點擊的元素,將您重定向到href地址(您想要去的地方)。

至於設置搜索字段值的行,相反,它似乎很好。但是你確定你不能通過一個獨特的財產(如id)來避免改變網站的CSS命名可能會變成未來的代碼崩潰嗎?