【问题标题】:Firing 'click' event on input submit without ID or name?在没有 ID 或名称的情况下在输入提交时触发“点击”事件?
【发布时间】:2023-03-11 03:38:02
【问题描述】:

我正在尝试使用 .NET 的 Web 浏览器以 C# 语言在网页上自动填写表单。我需要触发提交按钮,但它没有名称或 ID,它只有一个类型和值。

类型等于“提交”,值等于“登录”

我是这样注册的:

webBrowser1.Document.GetElementById("email").InnerText = email;
webBrowser1.Document.GetElementById("password").InnerText = password;
webBrowser1.Document.GetElementsByTagName("input")["register"].InvokeMember("click");

但是这一次,提交按钮没有名称,有人可以指导我按照正确的方向通过其类型甚至更好的值来获取元素吗?

HTML:

<form accept-charset="utf-8" method="post">
    <div class="field">
        <label for="email">Email or Username</label> <span class="required">*</span> <input class="email" id="email" name="email" size="32" type="text">
    </div>
    <div class="field">
        <label for="password">Password</label> <span class="required">*</span> <input id="password" name="password" size="16" type="password">
        <p class="tip"><a href="/signin/reset" id="reset_password_link">I don't know my password</a></p>
    </div>
    <div class="field">
        <input id="persistent_hidden" name="persistent" type="hidden" value="f"> <input checked="checked" id="persistent" name="persistent" type="checkbox" value="t"> <label for="persistent">Keep me logged in</label>
    </div>
    <div class="submit">
        <input id="redirect_path" name="redirect_path" type="hidden"> <input type="submit" value="Sign In"> or <a class="cancel" href="/">Cancel</a>
    </div>
</form>

【问题讨论】:

  • 请更新您的 HTML sn-p 以包含整个 &lt;form&gt; 元素。
  • 我已将我的问题更新为整个表单。

标签: c# html .net


【解决方案1】:

试试:

foreach(HtmlElement elem in webBrowser.Document.getElementByTagName("input")) {
    if (elem.GetAttribute("value") == "Sign In") {
        elem.InvokeMember("Click");
    }
 }

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-12-05
    • 2017-12-15
    • 1970-01-01
    • 2017-07-13
    • 2020-06-23
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多