触发J-Script onClick事件无效,IE浏览器

时间:2016-02-11 20:42:26

标签: c# visual-studio-2015 watin

我有一个关于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
    }
}

HTML代码:

                    <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,但我无法点击它。我尝试研究很多东西来试图解决我的问题,但我还没找到答案。

帮助将不胜感激!

1 个答案:

答案 0 :(得分:0)

You should be clicking on the "Sign In" link not the form itself. Try this code instead:

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.
    }
}