【问题标题】:How to click HTML button programatically by vb.net如何通过 vb.net 以编程方式单击 HTML 按钮
【发布时间】:2012-06-25 09:07:11
【问题描述】:

我正在尝试以编程方式单击按钮。该按钮位于网站的第 3 页。它没有任何 id 。它只有名称、类型和值。按钮的 HTML 代码如下所示

<FORM NAME='form1' METHOD='post' action='/dflogin.php'>
<INPUT TYPE='hidden' NAME='txtId' value='E712050-15'>
<INPUT TYPE='hidden'NAME='txtassId' value='1'>
<INPUT TYPE='hidden' NAME='txtPsw' value='HH29'>
<INPUT TYPE='hidden' NAME='txtLog' value='0'>
 <h6 align='right'>
 <INPUT TYPE='SUBMIT' NAME='btnSub' value='Next' style='background-color:#009900;    color:#fff;'></h6></FORM> 

我在vb.net 2008 express edition中试过这些代码...

For Each webpageelement As HtmlElement In allelements

            If webpageelement.GetAttribute("value") = "Next" Then

                webpageelement.InvokeMember("click")

            End If
        Next

还有第二个

theElementCollection = WebBrowser1.Document.GetElementsByTagName("INPUT")

    For Each curElement As HtmlElement In theElementCollection

        ctrlIdentity = curElement.GetAttribute("innerText").ToString

        If ctrlIdentity = "Next" Then

            curElement.InvokeMember("click")

        End If

    Next

第三个是

      Dim l_forms = WebBrowser1.Document.GetElementsByTagName("form")
        If l_forms.Count > 0 Then
            l_forms.Item(0).InvokeMember("submit")
        End If
and 4th one is

Do While WebBrowser1.ReadyState <> WebBrowserReadyState.Complete
Application.DoEvents()
Loop
WebBrowser1.Document.Body.InnerHtml = Replace(WebBrowser1.Document.Body.InnerHtml,"NAME='btnSub'", "NAME='btnSub' id='btnSub'") 'insert id into youre button
WebBrowser1.Document.GetElementById("btnSub").InvokeMember("click") 'click on btnSub

最后一个是

Dim i As Integer
        Dim allButtons As HtmlElementCollection

        allButtons = WebBrowser1.Document.GetElementsByTagName("input")

        i = 0
        For Each webpageelement As HtmlElement In allButtons
            i += 1
            If i = 5 Then
                webpageelement.InvokeMember("click")
            End If
        Next

这些所有代码都无法单击该按钮。请为单击此按钮提出适当的解决方案。非常感谢你

【问题讨论】:

  • 为什么不直接从后面的代码中使用 javascript

标签: vb.net


【解决方案1】:

这样的东西将是服务器端 JavaScript 和 jquery 解决方案

string script = "$(document).ready(function() {$('input[name=btnSub]').trigger('click'); });";
ScriptManager.RegisterStartupScript(this, GetType(), "ServerControlScript", script, true);

【讨论】:

  • 你能写出完整的代码吗
猜你喜欢
  • 2012-06-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-10-09
  • 1970-01-01
  • 2017-06-17
  • 2013-05-23
  • 2012-02-24
相关资源
最近更新 更多