触发 J 脚本 onClick 事件不起作用,IE 浏览器

本文关键字:IE 浏览器 不起作用 事件 脚本 onClick 触发 | 更新日期: 2023-09-27 18:34:25

我有一个关于 WatiN 的问题,我今天刚开始使用它,我不知道如何点击 js 按钮,这是我得到的:

private void btnLogin_Click(object sender, EventArgs e)
{
    if (!String.IsNullOrWhiteSpace(txtUser.Text) && !String.IsNullOrWhiteSpace(txtPass.Text))
    {
        browser.TextField("Username").Value = (txtUser.Text);
        browser.TextField("Password").Value = (txtPass.Text);
        var loginButton = browser.Form(Find.ById("loginForm")).Div(Find.ById("signInButtonPanel"));
        loginButton.Click(); //does nothing
        loginButton.FireEvent("onclick"); //does nothing
    }
}

网页代码:

                    <div id="signInButtonPanel" data-use-apiproxy-signin="False" data-sign-on-api-path="https://api.roblox.com/login/v1">
                        <a  roblox-js-onclick class="btn-medium btn-neutral">Sign In</a>
                        <a  roblox-js-oncancel class="btn-medium btn-negative">Cancel</a>
                    </div>

除了点击部分之外的所有内容都可以工作,它可以正确找到 Div,但我无法单击它。我尝试研究很多东西来试图解决我的问题,但我还没有找到答案。

帮助将不胜感激!

触发 J 脚本 onClick 事件不起作用,IE 浏览器

您应该单击"登录"链接,而不是表单本身。请尝试以下代码:

private void btnLogin_Click(object sender, EventArgs e)
{
    if (!String.IsNullOrWhiteSpace(txtUser.Text) && !String.IsNullOrWhiteSpace(txtPass.Text))
    {
        browser.TextField("Username").Value = (txtUser.Text);
        browser.TextField("Password").Value = (txtPass.Text);
        var loginButton = browser.Div(Find.ById("signInButtonPanel"));
        loginButton.Links[0].Click(); // Try 0 or 1.
    }
}