【问题标题】:How to programmatically click on text input in WebBrowser using C#如何使用 C# 以编程方式单击 WebBrowser 中的文本输入
【发布时间】:2009-10-08 19:11:37
【问题描述】:

我使用 WebBrowser 打开了一个网站。现在我想以编程方式单击输入文本(文本框)字段。我无法使用焦点,因为该网站仅在单击时才使用 JS 解锁该字段,并且我也尝试过:

Object obj = ele.DomElement;
System.Reflection.MethodInfo mi = obj.GetType().GetMethod("click");
mi.Invoke(obj, new object[0]); 

但它返回 mi = null。如何做到这一点才能发挥作用?

【问题讨论】:

    标签: c# .net winforms click webbrowser-control


    【解决方案1】:

    与我在your other question 上的回答非常相似。

    获取文本框的 HtmlElement 代表,并在其上调用 HtmlElement.InvokeMember("click")。

    【讨论】:

    • 我没有 InvokeMethod 只有 InvokeMember 是这个吗?
    【解决方案2】:

    如果可以,请使用:

    webbrowser1.Navigate("javascript:document.forms[0].submit()")
    

    或类似的东西。对我来说,它更容易、更准确。

    【讨论】:

      【解决方案3】:

      填写网页上的文本字段:

      string code ="";
      code = code + "var MyVar=document.getElementById('tbxFieldNameOnWebPage');if(MyVar != null) MyVar.value = 'SOMEVALUE';";
      domDocument.parentWindow.execScript(code, "JScript");
      
      Then To Click a button on a webpage:
      
      code = "";
      code = "var SignupFree = document.getElementsByTagName('button')[1];";
      code = (code + " SignupFree.click();");
      domDocument.parentWindow.execScript(code, "JScript");
      

      您也可以使用document.getElementById('buttonID'); 代替document.getElementsByTagName('button')[1];,但必须为该特定网页上的此按钮提供一个ID。

      【讨论】:

        【解决方案4】:

        在 HtmlElement 或 Browser.InvokeScript 函数上使用 InvokeMethhod。

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2011-04-24
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2019-04-09
          • 2012-08-26
          • 2012-03-11
          相关资源
          最近更新 更多