全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1358
推到 Plurk!
推到 Facebook!

有什麼方法可以替使用者按下"Submit"的按鈕?

答題得分者是:Miles
darnell
版主


發表:25
回覆:103
積分:145
註冊:2003-03-04

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-08-19 11:43:30 IP:61.219.xxx.xxx 未訂閱
我的程式利用外部呼叫的方法開啟了IE瀏覽器,連到了某個網頁,我有辦法可以替使用者按下網頁中的傳送紐嗎?我試過了利用Tab移動焦點的方法,可是因為使用Tab移動焦點會使的傳送的內容錯誤,有其他方法可以直接按下傳送鈕嗎?(我是希望可以不需用到webBrowser) 發表人 - darnell 於 2003/08/19 12:22:10
darnell
版主


發表:25
回覆:103
積分:145
註冊:2003-03-04

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-08-19 16:50:54 IP:61.219.xxx.xxx 未訂閱
引言: 我的程式利用外部呼叫的方法開啟了IE瀏覽器,連到了某個網頁,我有辦法可以替使用者按下網頁中的傳送紐嗎?我試過了利用Tab移動焦點的方法,可是因為使用Tab移動焦點會使的傳送的內容錯誤,有其他方法可以直接按下傳送鈕嗎?(我是希望可以不需用到webBrowser)
不好意思ㄝ,題目寫的不太對...問題是這樣的...替使用者輸入資料... http://fbfh.trade.gov.tw/reg/Merchant/WB0104I.htm 但是如果使用的是WebBrowser就無法正確打開...使用IE卻可以... 我發現原因應該是在進去後的那頁廠商連結...使用JavaScript的關係... 如果用WebBrowser就無法正確取得位置...不知道該怎麼半ㄋ>"<....
Clarinet
高階會員


發表:9
回覆:97
積分:126
註冊:2002-05-08

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-08-19 18:07:51 IP:61.66.xxx.xxx 未訂閱
引言: 我的程式利用外部呼叫的方法開啟了IE瀏覽器,連到了某個網頁,我有辦法可以替使用者按下網頁中的傳送紐嗎?我試過了利用Tab移動焦點的方法,可是因為使用Tab移動焦點會使的傳送的內容錯誤,有其他方法可以直接按下傳送鈕嗎?(我是希望可以不需用到webBrowser)
若您一定要透過IE的話,可用Windows 的ShellWindow方式或OleObject的方式,取得其Interface後,控制其Interface來達到您要的功能! GPS(全球衛星定位系統) http://www.allgps.com
------
GPS(全球衛星定位系統)
http://www.allgps.com
Miles
尊榮會員


發表:27
回覆:662
積分:622
註冊:2002-07-12

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-08-19 21:30:53 IP:218.160.xxx.xxx 未訂閱
darnell 兄您好不好意思插個花: 我之前有做過相關的自動測試程式, 但我是用TWebBrowser去做的, 我將 相關的Code列出來看看, 請看紅字部分即可, 有些已經忘了當初怎麼寫出來的 < class="code"> 宣告 private { Private declarations } hd : IHtmlDocument2; fm :IHtmlFormElement; he :IHtmlElement; ie :IHtmlInputElement; ise:IHtmlSelectElement; ovTable : OleVariant; a : TWebBrowser; BeginTime, FormBeginTime : TDateTime;

procedure TForm1.WebBrowser1DocumentComplete(Sender: TObject;
  const pDisp: IDispatch; var URL: OleVariant);
var i, j : integer;
begin
   Form2.RandomCreditNO;
   hd := WebBrowser1.Document as IHtmlDocument2;
   fm := hd.forms.item(0, 0) as IHtmlFormElement;
   //ShowMessage(fm.name);
   if fm = nil then begin
      Form2.Memo1.Lines.Strings[MemoCount-1] := Format('%-8s %-20s %-20s %-20s',[Form2.Memo1.Lines.Strings[MemoCount-1],'失敗  其他','  Form時間:' FormatDateTime('n:s:z',Now-FormBeginTime), Card1 Card2 Card3 Card4]);
      Form2.WriteFile(Form2.Memo1.Lines.Strings[MemoCount-1]);
      Inc(Form2.Fail);
      Form2.ShowResult;
      if Form2.CheckBox1.Checked then Close;
      exit;
   end;
   if fm.name = 'gobuy' then begin
       for i := 0 to hd.all.length - 1 do begin
           he := hd.all.item(i, 0) as IHtmlElement;
           if he.tagName = 'INPUT' then begin
              ie := hd.all.item(i, 0) as IHtmlInputElement;
              Memo1.Lines.Add(ie.name);
              if ie.name = 'ordernumber' then
                 ie.value := inttostr(orderid);
              if ie.name = 'amount' then
                 ie.value := '1';
              if ie.name = 'storeid' then
                 ie.value := storeid;
           end;
       end;
       Button2Click(nil);
   end;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
   fm.submit;
end;
< >< > 我不是高手, 高手是正在銀幕前微笑的人.
------


我不是高手, 高手是正在銀幕前微笑的人.
darnell
版主


發表:25
回覆:103
積分:145
註冊:2003-03-04

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-08-20 14:27:09 IP:61.219.xxx.xxx 未訂閱
謝謝Clarinet和Miles,這個問題我已經解決了,之前希望用IE是因為看起來好像只有在IE才有辦法處理,因為這個網頁用到了JavaScript隨機產生的一組序號,如果沒有相對應的序號即無法處理,因此才會發生使用內建的WebBrowser元件無法處理的情形,不過後來發現可以取得序號和做模擬傳送的方法解決了這個問題,本來想說使用移動滑鼠的方式來點選,不過因為相對位置不好掌握,也容易發生在網頁還未載入前即移動,因此最好的方式還是利用WebBrowser來解決... 謝謝大家~~~ ===發揮人的無限潛能=== ==思想的極至就是虛無==
系統時間:2024-05-02 11:24:22
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!