2011/01/25

[Programming] chickenfoot , firefox 上面的瑞士小刀

前言:網路論壇 這邊 我有在 ptt 上面提示人家說,用 chickenfoot 可以解決他的問題。不過他的留言提到一個問題, chickenfoot 不能處理提示(alert)視窗的部份。其實 ... 他搞錯了,並不是不能,只是他不會而已。

讓我簡單的介紹一下 chickenfoot 是一款什麼樣的軟體。你可以用 它 來控制你的 firefox ,利用它來點擊每個網頁的連結,做你想要的測試或其它人手能作的動作。像是進到 google 的首頁,輸入關鍵字,再點擊 google search 的按鈕之類的。

以一個邪惡的應用來說,會像是「蘋果點點紅」的活動,你可以用 chickenfoot 很方便的載入你的 script ,去尋找點點紅的連結,最終達成點擊完所有的點數,這樣就可以拿到獎品。

邪惡的範例內容邏輯示意如下:

1. 用 script 找出所有 50 個點數。
2. 建成 array 。
3. for (i = 0; i < array.length; i ++) {
    go(array[i]);
} /* 點擊所有的點數 */
4. 處理 alert 視窗。

前面都很簡單,第四點的 alert 視窗不好處理,不過並不是沒有。
google keyword "firefox" "chickenfoot" "alert" "handle" 在 chickenfoot 的範例 repository 裡面一樣可以找得到一些範例。(藉此說明,網路的資訊常常以偏概全或積非成是?)

我消化了一下這邊論壇的範例,改成這樣:
function handleDialog()
{
    if (closeWindow() == false) {
        output("W");
        setTimeout(handleDialog, 500);
    } else {
        output("x");
    }
}

可以確保一定能關掉這個 alert 視窗,減少人手操作的需求。
至於邪惡的蘋果點點紅的 chickenfoot 的 script 連結在此
有需要可以拿這個參考。

操作也很簡單, Ctrl + O 載入 script ,再按下play ,接著會詢問你帳號密碼,打完之後就自動點擊完 50 點。(當然,這之中 firefox 是完全由這支 script 所控制的,跑完才把瀏覽器還給你 )

2 則留言:

Unknown 提到...

請教一下,有辦法抓取到網頁上用script作的倒數計時的數字嗎?

anton 提到...

javascript script layout 靠 dom object 修改,或 innerHTML, 應該都抓得到才對。

[Windows] git-bash 底下的工具

因為工作轉到 Windows 平台上的關係,所以很多工具改到 Windows 上面運作,跟著在 TortoiseGit 底下使用 git-bash 來維護自己的專案原始碼。結果就是裝了前面提過的 auto-hotkey 使用熱鍵來提昇自己的平台操作速度; 但除了 hotkey...