2012-01-23 75 views
0

我的一些供應商要求我通過他們的網站下訂單。我通過點擊我的訂單處理程序中的一個按鈕來實現流程自動化。我的程序會打開默認瀏覽器(現在我的上一臺計算機死機後的IE 9),導航到供應商的網站訂購頁面,填寫信息字段,然後單擊表單提交按鈕。IE9自動化按鈕點擊

this.oIE.Document.all.ctl00_MainContent_Login1_LoginButton.click() 

或 this.oIE.Document.getElementById( 「ctl00_MainContent_Login1_LoginButton」)。單擊()

這個問題似乎僅當按鈕具有 「點擊」 值出現。

在IE8中,click()事件執行onclick代碼。在IE9中,click事件返回一個通用對象。它不會觸發onclick代碼。

我試過x.FireEvent(「click」),但是這也返回一個對象。看來,IE9的DOM onclick值不能被外部程序執行。我的程序在IE8上運行正常(我使用Chrome,IE,FireFox進行不同的設置和登錄,所以更改默認瀏覽器並不是一個真正的選擇。另外,我的一些供應商要求我使用IE作爲他們的網站打破在其他瀏覽器。)

任何意見,永久解決這個將不勝感激。

回答

0

按鈕點擊調用的函數大概在每個瀏覽器上都有相同的名稱。你可以調用那個函數嗎?

模擬按鈕點擊似乎是一個不必要的步驟。另外,你有沒有嘗試過jQuery?像那樣的圖書館試圖消除瀏覽器差異。

+0

如果您正在開發HTML以在瀏覽器中顯示,那麼JQuery非常棒。但是,我的程序正在自動化人在電腦上的坐姿,而不是向人顯示的網站。我在其他人的網站上填寫了各種表單,除了「查看頁面源」之外,我無法訪問HTML。你知道如何通過DOM執行onclick代碼嗎? – user1165593

+0

我最終爲具有此問題的供應商網站設置了IE9兼容模式。希望當他們修改他們的網站時,我會記住這一點,並再次被打破。 (作爲一個使用此登錄信息的新手,在提出問題的8小時內,stackoverflow不會讓我回答自己的問題。) – user1165593

2

我本來可以逐字寫下你的問題,並且只要你有這個問題就一直在努力。

愚蠢,愚蠢的問題:click()功能,現在需要一個參數:click(1)

w = this.oIE.Document 
z = w.getElementById("btn-header-input-signin") 
z.click(1) 

還沒有徹底測試這一點,但它的工作原理美國郵政服務的登錄頁面上。