• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    控制網頁的FORMS行為(收藏)

    發布: 2007-7-01 21:48 | 作者: admin | 來源: | 查看: 11次 | 進入軟件測試論壇討論

    領測軟件測試網

    控制網頁的FORMS行為

    Private Sub Command2_Click()
        With WebBrowser1.Document.Forms(0)
            .c2.Checked = 1
            .r1(1).Checked = 1
        End With
    End Sub


    Private Sub Command2_Click()
        With WebBrowser1.Document.Forms(0)
            .d1.Options(1).Selected = 1
        End With
    End Sub

    web.Document.getElementsByName("D1").Item(0).selectedIndex = 1

    ==============================================
    <input type="radio" value="n" checked name="notecome">普通
    <input type="radio" value="c" name="notecome">原創
    <input type="radio" value="z" name="notecome">轉帖
    <input type="button" value="發送提交" name="button"

    比如一個網頁里有如上代碼
    我想選擇原創
    webbrowser中怎么寫


    Private Sub Command1_Click()
        WebBrowser1.Navigate "c:\ggg.html"
    End Sub

    Private Sub Command2_Click()
        Dim x
       
        For Each x In WebBrowser1.Document.All("notecome")
            If x.Value = "c" Then
                x.Checked = True
            End If
        Next
    End Sub

    ============================================================================================
    假設你的HTML代碼如下:

    <html>
    <script>
      function abcd(){
        alert("haha");
        return false;
      }
    </script>

    <body>
      <a id = ´xxx´ href=# onclick="abcd()">ggggg</a>
    </body>
    </html>

    VB代碼如下:
    Private Sub Command1_Click()
        WebBrowser1.Navigate ""
    End Sub

    Private Sub Command2_Click()
        Dim a, b
        Dim d As IHTMLDocument2
       
        For Each a In WebBrowser1.Document.All
            Debug.Print a.tagName
            If (a.tagName = "SCRIPT") Then

            End If
            If (a.tagName = "A") Then
                If a.Id = "xxx" Then
                    a.FireEvent ("onclick")
                End If
            End If
        Next

    點擊Command1瀏覽這個網頁,點擊Command2運行其中的腳本abcd。


    ==============================================

    怎么編程把用戶名,密碼提交到網頁上的登錄頁?
    首先在程序中加入Webbrowser控件并加入引用 Microsoft HTML Object Library。
    假設你的HTML頁面表單代碼如下:
    <form method="POST" action="">
      <p>請填寫下面表單注冊(*項為必添項)</p>
      <p>*姓名<input type="text" name="Name" size="20"></p>
      <p>*昵稱<input type="text" name="NickName" size="20"></p>
      <p>電子郵件<input type="text" name="EMail" size="20"></p>
      <p>*密碼<input type="text" name="Password" size="20"></p>
      <p><input type="submit" value="提交" name="B1"><input type="reset" value="全部重寫" name="B2"></p>
    </form>
    注意其中元素的type、Name、value屬性。然后VB中的代碼如下:
    Private Sub Command1_Click()
        WebBrowser1.Navigate ""
    End Sub

    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
        Dim vDoc, vTag
        Dim i As Integer
         
        Set vDoc = WebBrowser1.Document
        List1.Clear
        For i = 0 To vDoc.All.length - 1
            If UCase(vDoc.All(i).tagName) = "INPUT" Then
                Set vTag = vDoc.All(i)
                If vTag.Type = "text" Or vTag.Type = "password" Then
                    List1.AddItem vTag.Name
                    Select Case vTag.Name
                        Case "Name"
                            vTag.Value = "IMGod"
                        Case "NickName"
                            vTag.Value = "IMGod"
                        Case "Password"
                            vTag.Value = "IMGodpass"
                        Case "EMail"
                            vTag.Value = ""
                    End Select
                ElseIf vTag.Type = "submit" Then
                    vTag.Click
                End If
            End If
        Next i
    End Sub
    點擊Command1就可以自動填表并提交了。


    =====================================================================================
    調用forms下的Submit控件的Click事件,我會做,但我不想這么做.

    有沒有辦法直接調用類似于:web1.document.forms.submit,這句語句我怎么寫都不成功
    是這個
    Webbrowser1.document.formName.submit()

    不能用,formname為form1所以我調用Webbrowser1.document.form1.submit
    出錯類型:對象不支持該屬性或方法,
    然后調用Webbrowser1.document.forms(0).submit()
    出錯類型同上
    Private Sub Command1_Click()
        WebBrowser1.Navigate ""
    End Sub

    Private Sub Command2_Click()
        WebBrowser1.Document.All("Form1").submit
    End Sub
    <form name="form1" method="post" action="aa.asp">
    ......
    <input name="reset" type="reset" vlaue="reset" class="button">
    </form>
    我本想把reset的type改成submit 再提交,可出錯,type是只讀屬性,不能修改,我只要有辦法把這頁面遞交出去就行,當然,用POST也不行,參數太多,組合方式太多


    你用下面的代碼試一下你的頁面:


    Private Sub Command1_Click()
        WebBrowser1.Navigate ""
    End Sub

    Private Sub Command2_Click()
        Dim x
       
        On Error Resume Next
        For Each x In WebBrowser1.Document.All
            List1.AddItem x.Name
        Next
    End Sub

    看看在List1里面列出來的頁面元素的名字有沒有Form1
    找到原因了,你的頁面是這樣的:
    <input language="javascript" onclick="if (typeof(Page_ClientValidate) == ´function´) Page_ClientValidate(); " name="Submit1" id="Submit1" type="submit" value="Submit" />
    你把name="Submit1" 改成name="Submit"肯定就不會成功了,很不幸的是我要提交的頁面中就有這樣一句,現在可有辦法解決嗎???

    =======================================================================
    使用WebBrowser_V1接受消息

    Private WithEvents WebMessage As WebBrowser_V1

    Private Sub Form_Load()
      Set WebMessage = WebBrowser1.Object
    End Sub

    Private Sub WebMessage_NewWindow(ByVal URL As String, ByVal Flags As Long, ByVal TargetFrameName As String, PostData As Variant, ByVal Headers As String, Processed As Boolean)

    ´這里有Flags變量可以取得窗體應有的狀態

    End Sub

    具體值需要你自己去試試看。對象瀏覽器里面沒有

    =======================================================================================================

    通過下面的方法遍歷頁面中的IFrame:

    Sub EnumFrames(ByVal wb As WebBrowser)
    Dim pContainer As olelib.IOleContainer
    Dim pEnumerator As olelib.IEnumUnknown
    Dim pUnk As olelib.IUnknown
    Dim pBrowser As SHDocVw.IWebBrowser2

       Set pContainer = wb.Object.Document
      
       ´ Get an enumerator for the frames
       If pContainer.EnumObjects(OLECONTF_EMBEDDINGS, pEnumerator) = 0 Then
      
          Set pContainer = Nothing
         
          ´ Enumerate and refresh all the frames
          Do While pEnumerator.Next(1, pUnk) = 0
            
             On Error Resume Next
            
             ´ Clear errors
             Err.Clear
            
             ´ Get the IWebBrowser2 interface
             Set pBrowser = pUnk
      
             If Err.Number = 0 Then
                Debug.Print "Frame: " & pBrowser.LocationURL
             End If
      
          Loop
         
          Set pEnumerator = Nothing
      
       End If
      
    End Sub


    =======================================================================================


    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備10010545號-5
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>