如何寫測試程式來測試其他程式? |
答題得分者是:Coffee
|
ralph
初階會員 發表:41 回覆:82 積分:29 註冊:2003-02-04 發送簡訊給我 |
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
http://delphi.ktop.com.tw/board.php?cid=30&fid=67&tid=94117
tidhttp 自動登入問題,非網頁的form
------
努力會更接近成功 |
ralph
初階會員 發表:41 回覆:82 積分:29 註冊:2003-02-04 發送簡訊給我 |
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
http://delphi.ktop.com.tw/board.php?cid=30&fid=72&tid=94381
Win32 API 使用討論區(Delphi) » 如何自動將window.open開啟的小視窗內容自動存檔 // 裏面的例子,我是從網路上取得的,我曾改成自動簽入網頁的程式,你說的並不難。 // 下面的比較完整,你先試試看 ...automatically fill in web forms of a running IE instance? http://www.swissdelphicenter.ch/torry/showcode.php?id=1607
------
努力會更接近成功
編輯記錄
pceyes 重新編輯於 2008-07-13 13:43:54, 註解 無‧
|
ralph
初階會員 發表:41 回覆:82 積分:29 註冊:2003-02-04 發送簡訊給我 |
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
如果在同一頁,可以用同樣的方法(不用scoll down),但問題都在frame或另開視窗,其實還是有很多失敗的例子 尤其是如果Buttom是Img型態的,多要用Form Name或者是javascript方式,後者更覆雜。 // 以下是我現在在用的ini檔,您可以參考一下,id、pwd改放到database // [AutoPost] ;執行程式後首先要執行的網址 FirstWebAddress=www.gmail.com ;使用者帳號, type, name ;<INPUT type="text" name="Email"> pceyes2008,text,Email ;使用者密碼, type, name ;<INPUT type="password" name="Passwd"> PassWord=pe560529,password,Passwd ;第一種登入方式 by type name ; type, name ;<INPUT type="submit" name="signIn" value="登入"/> SubmitByTagName=submit,signIn ;第二種登入方式 by Form Name ;<FORM name="gaia_loginform" SubmitByFormName= ;第三種登入方式 JaveScript SubmitByJava= ; <部份抬頭>, SuccessFulTitle=收件匣,40 ; 登入後欲轉往網址 LogonWebAddress= // 以下是部分程式碼,寫得不好,如果您可以改得更好,請知會一下,先謝。 [code delphi] procedure TForm1.ExectuePost; var ShellWindow: IShellWindows; WB: IWebbrowser2; spDisp: IDispatch; IDoc1: IHTMLDocument2; Document: Variant; k, m: Integer; ovElements: OleVariant; i, lastSucc : Integer; vEmpty : oleVariant; begin if sFirstWebAddress <> '' then begin ShellExecute(Handle, 'open', pchar(sFirstWebAddress), nil, nil, SW_MAXIMIZE); end else begin exit; end; ShellWindow := CoShellWindows.Create; // get the running instance of Internet Explorer for k := 0 to ShellWindow.Count do begin spDisp := ShellWindow.Item(k); if spDisp = nil then Continue; // QueryInterface determines if an interface can be used with an object spDisp.QueryInterface(iWebBrowser2, WB); if WB <> nil then begin WaitForComplate(WB); WB.Document.QueryInterface(IHTMLDocument2, iDoc1); if iDoc1 <> nil then begin WB := ShellWindow.Item(k) as IWebbrowser2; begin Document := WB.Document; // count forms on document and iterate through its forms for m := 0 to Document.forms.Length - 1 do begin ovElements := Document.forms.Item(m).elements; // iterate through elements for i := 0 to ovElements.Length - 1 do begin // when input fieldname is found, try to fill out try // id if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and (CompareText(ovElements.item(i).type, userid_sl[1]) = 0) and (CompareText(ovElements.item(i).name, userid_sl[2]) = 0) then begin ovElements.item(i).Value := userid_sl[0]; end; // password if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and (CompareText(ovElements.item(i).type, passwrd_sl[1]) = 0) and (CompareText(ovElements.item(i).name, passwrd_sl[2]) = 0) then begin ovElements.item(i).Value := passwrd_sl[0]; end; if sSubmitByTagName<>'' then begin WaitForComplate(WB); // when Submit button is found, try to click if (CompareText(ovElements.item(i).tagName, 'INPUT') = 0) and (CompareText(ovElements.item(i).type, SubmitN_sl[0]) = 0) and (CompareText(ovElements.item(i).name, SubmitN_sl[1]) = 0) then begin ovElements.item(i).Click; end; end; except break; exit; end; end; // for i = 0 end; // for m := 0 end; // WB := ShellWindow.Item(k) as IWebbrowser2 end; // if idoc1 <> nil end; // if wb <> nil end; // for k := 0 to ShellWindow.Count[/code]
------
努力會更接近成功 |
ralph
初階會員 發表:41 回覆:82 積分:29 註冊:2003-02-04 發送簡訊給我 |
|
pceyes
尊榮會員 發表:70 回覆:657 積分:1140 註冊:2003-03-13 發送簡訊給我 |
|
ralph
初階會員 發表:41 回覆:82 積分:29 註冊:2003-02-04 發送簡訊給我 |
|
Coffee
版主 發表:31 回覆:878 積分:561 註冊:2006-11-15 發送簡訊給我 |
只要本問題持續討論中,則不會要求結案,
若是本問題已經有相當時間未討論,請適時結案。 但是請盡量公開討論,以俾有需要的人使用此討論。 ===================引 用 ralph 文 章=================== 其實目前我們在討論可行性. 我們已知IBM有一tool可能可以做此testing, 但此工具價錢太高. 我怕有一陣子沒有close此topic, 版主會不高興, 所以想先close.
------
不論是否我發的文,在能力範圍皆很樂意為大家回答問題。 為了補我的能力不足之處,以及讓答案可以被重複的使用,希望大家能儘量以公開的方式問問題。 在引述到我的文時自然會儘量替各位想辦法,謝謝大家!
編輯記錄
Coffee 重新編輯於 2008-07-18 10:59:23, 註解 無‧
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |