【问题标题】:trying to InvokeMember a submit button with c#尝试使用 c# 调用 InvokeMember 提交按钮
【发布时间】:2017-02-13 00:23:25
【问题描述】:
  1. 这是网站的代码:

    function checkSubmit(e)
    {
       if(e && e.keyCode == 13)
       {
          document.frmLogin.submit();
       }
    }
    <div class="enterButton" onclick="document.frmLogin.submit()">Sign in</div>
    
  2. 这是我在 c# 中尝试过的:

    HtmlElementCollection elc1 = webBrowser1.Document.GetElementsByTagName("div");
    foreach (HtmlElement element in elc1)
    {
        if (element.GetAttribute("InnerHtml").Equals("<DIV onclick=document.frmLogin.submit() class=enterButton>Sign in</DIV>"))
        {
            element.InvokeMember("submit()");
        }
    }
    
  3. foreach 正在运行,if 语句在到达 InvokeMember 时正在运行。

【问题讨论】:

  • 你是如何让 c# 在浏览器中运行的?
  • @Will OP 尝试在 c# 中调用 WebBrowser 控件中的 javascript 函数,这是可能的....
  • 我正在使用 webbrowser 控制器运行 VS13 windows 窗体.....
  • 请注意,您的标题指的是“提交按钮”,通常是 HTML 的名称,如 &lt;input type="submit"/&gt;,但您的代码显示的是 div,它不是按钮。

标签: javascript c# webbrowser-control invokemember


【解决方案1】:

尝试不带括号的调用成员方法。

 element.InvokeMember("submit");

【讨论】:

  • 圆括号或圆括号 :)
  • 我在上面的答案中删除的那些...... :)
  • 您不想调用"click",因为elementdiv
【解决方案2】:

抱歉,我只是在错误的元素上遇到了麻烦:

if (element.GetAttribute("InnerHtml").Equals("Sign in"))
{
element.InvokeMember("click");
}

现在可以了....

【讨论】:

    猜你喜欢
    • 2013-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-01
    • 2018-07-11
    • 1970-01-01
    • 2011-06-29
    • 2018-06-28
    相关资源
    最近更新 更多