none
我用axWebBrowSer自动填写表单 RRS feed

  • 问题

  • 我用axWebBrowSer自动填写表单
    text1 = (HTMLInputTextElement)doc.all.item("edit", 0);
    ((mshtml.HTMLInputElement)(text1)).value = "test";

    mshtml.HTMLFormElement f1 = (mshtml.HTMLFormElement)doc.all.item("ob_submit", 0);
    ((HTMLFormElement)(f1)).submit();

    不过这个网页是FRAME结构的,填不进去啊,请问哥们有什么好办法啊?
    2007年8月2日 8:34

答案

  • 基于我的理解,您可以参考下述方法使用WebBrowser控件实现表单的自动填写:
    首先你要想法取得WebBrowser控件中的网页表单的HTML文档,然后利用SendKeys函数模拟键盘输入,完成表单自动填写,具体的操作代码如下(以VB.NET代码为例,您可以参考它实现C#代码):
    Private Sub WebBrowser1_DocumentComplete(ByVal pDisp As Object, URL As Variant)
    Dim ii As Integer
    Dim doc As IHTMLDocument2
    Set doc = WebBrowser1.Document
    Dim tmp As String

    If InStr(doc.body.innerText, "寻找一个新的用户名") > 0 Then
    tmp = "sdfsdf23" + Trim(Str$(ii))
    doc.All.Item("uid").focus
    SendKeys tmp
    SendKeys "{enter}"
    End If

    If InStr(doc.body.innerText, "输入您的个人资料") > 0 Then
    doc.All.Item("Password").Value = "123456"
    doc.All.Item("Confirm").Value = "123456"
    doc.All.Item("FirstName").Value = "tomcant"
    doc.All.Item("question").Value = "what is your name"
    doc.All.Item("answer").Value = "my name is ddd"
    doc.All.Item("year").Value = "80"
    doc.All.Item("month").Value = "3"
    doc.All.Item("day").Value = "18"
    doc.All.Item("day").focus
    SendKeys "{enter}"
    End If

    If InStr(doc.body.innerText, "申请邮箱成功") > 0 Then
    ii = ii + 1
    WebBrowser1.Navigate "http://freemail.eyou.com/signup.html?bgp=%CE%D2%BD%D3%CA%DC&bgp_enable=on"
    End If

    End Sub
    2007年8月2日 9:23