首先今天要說的東西跟遊戲無關,你是不是有時候會遇到,在某個網頁上重複着幾十次的簡單而又無聊的錄入或點選等工作?比如你的程式需要測試,需要注冊大量的測試郵箱。比如你的老闆是個變态,讓你去各個論壇發大量的垃圾貼子(最無恥行為,純屬舉例)。或者,你需要定時的到某一個網頁上執行某一些行為,比如上班下班的出勤打卡系統,等等吧,
如果有,那麼我今天所介紹的或許會對你有幫助。
當然,如果你要操作的這些網頁都是自己開發的,那麼無所謂了,你在多開發個工具就行了,但是我說的上面這些都是第三方的網頁,你控制不了它們,如果遇到上上述情況,而你是一個挨踢程式員,而你又選擇老老實實的重複着這些無聊又費時的工作,那你就真該挨踢了。
要實作這些功能,你隻需要用程式控制這些網頁,讓網頁聽你的就行了。要動手實作這一系列的功能,你需要做幾個簡單的準備。
1,os環境:windows
2,ie浏覽器
3,工具:excel或者visual studio
先來看看如何用excel來控制一個網頁。
建立一個excel并且進入vba,标準模式,什麼?不知道vba?你可以找我的兩個老師問一下,他們一個姓百,另一個姓谷,诶?你說你也認識?那大家都是自己人了,你什麼時候請吃飯啊?
如下圖。
我是日文系統,中文的你對照着自己來吧...
要對ie進行操作,首先需要引入兩個插件
html object library
microsoft internet controls
如圖
打開ie,你隻需要下面幾行代碼
比如我要打開百度,那就這樣
接着你需要等待頁面加載
好了,百度打開了,是不是很簡單,不過你也會說,打開個網頁算什麼,随便一個程式都可以吧,好吧,咱們下面來實作自動搜尋。
首先,咱們用vba在百度的輸入框裡輸入幾個文字,百度的輸入框的代碼如下
那我們就可以通過這個id來對輸入框進行輸入,如下
如果你上面都沒有出錯的話,"hellow world"應該已經被加入到輸入框裡了。
那麼下面用vba來點選搜尋按鈕,進行搜尋。百度的搜尋按鈕代碼如下
看到id了吧,那就簡單了,下面這樣來點選它
怎麼樣,自動搜尋完成了吧
當然,這隻是一個最簡單的例子而已,如果沒有id怎麼辦?你也可以下下面這樣用它
看到了吧,和js很像,如果你不願意查相關的api的話,那你就拿js的操作方法往上面套用吧
下面來看另一個頁面的結構,比如下面這樣
如果你要操作這個頁面的子頁面,也很簡單
這個是操作索引為1的子頁面,當然你也可以循環所有的子頁面,來做的要做的事。
上面所介紹的都是先打開一個頁面,然後再進行操作,如果需要操作一個已經打開的頁面,你需要這樣。
excel就說這麼多了。
下面用.net來做,既然前面用了vba,這裡我就不用vb再重複了,換用c#來實作。
打開visual studio,建立一個項目,同樣,這次你需要引入三個插件
microsoft shell controls and automation
啟動ie,并打開百度
擷取document
同樣,在輸入框裡輸入文字
開始搜尋。
下面利用c#如何來操作已經打開的浏覽器呢?看下面代碼
好了,其他的方法如
等等,自己套用一下就可以了
接下來是frame操作,如下
完了,操作方法基本上都大同小異吧。
在使用.net來操作浏覽器的時候,我發現操作同一個頁面時,如果頁面發生重新整理或者跳轉等動作後,程式經常會出bug,網上搜尋了一下,發現還真不是我一個人,那如何來避免呢?
因為使用.net來第一次操作頁面的時候是肯定不會出錯的,必須是2次或2次以上才會出現錯誤,是以我們可以做兩個程式,在一個程式中調用另一個,調用完之後,就把它關閉掉,這樣每次都相當于啟動一個新程式,就不會出bug了。
啟動一個新程式用下面代碼
傳入你的程式的路徑,就可以打開它了。
有了上面的知識,你可以自由的發揮了,比如你做一個定時程式,在上班時間自動打卡,然後自己接着睡一會兒....噓!!這絕對不是我說的。
今天就介紹這麼多了,歡迎繼續關注我的部落格
轉載請注明: