【问题标题】:Webkit.net and own javascriptWebkit.net 和自己的 javascript
【发布时间】:2013-01-08 21:30:53
【问题描述】:

嗯,问题很简单。

我在以这种方式生成的类文件中有一个 webkit 浏览器:

public static WebKit.WebKitBrowser mainBrowser = new WebKitBrowser();

现在我正在尝试自动登录网站。但是输入字段没有填写。

我正在使用此代码到达需要填写数据的位置:

public void loginthen()
{
    this.Controls.Add(globalVars.mainBrowser);
    globalVars.mainBrowser.DocumentCompleted += 
        new WebBrowserDocumentCompletedEventHandler(mainBrowser_DocumentCompleted);
    globalVars.mainBrowser.Navigate("http://www.somesite.com/");                
}

void mainBrowser_DocumentCompleted(object sender, WebBrowserDocumentCompletedEventArgs e)
{
    var send = sender as WebKit.WebKitBrowser;
    if (send.Url == e.Url)
    {
        MessageBox.Show("Inloggen");
        globalVars.mainBrowser.Document.GetElementById("user").TextContent = "User Name";
    }
}

MessageBox 已显示,我没有收到任何错误,但未填写输入字段。

输入字段的 HTML 是这样的:

<input id="user" name="user" class="text" type="text" value="" onkeydown="if((e=window.event||event) &amp;&amp; e.keyCode == 13 &amp;&amp; $('#user').val() &amp;&amp; $('#password').val()) $('#login_button').trigger('click');">

所以我的想法是......我使用TextContent 错了吗?

这(以及触发按钮等)是否可以通过 javascript 更轻松地完成?

所以我用谷歌搜索它,但我唯一能找到的是如何从 javascript 调用 C# 函数或如何从 C# 调用 javascript 函数。但我不拥有这些网站,所以这行不通...

那么您对此有何看法?

【问题讨论】:

    标签: c# javascript webkit textinput


    【解决方案1】:

    代替:

    globalVars.mainBrowser.Document.GetElementById("user").TextContent = "User Name";
    

    你应该使用:

    globalVars.mainBrowser.Document.GetElementById("user").SetAttribute("value", "User Name");
    

    您可以使用TextContent 属性设置HTML 标记的内容,例如&lt;p /&gt;&lt;span /&gt;&lt;div /&gt;

    globalVars.mainBrowser.Document.GetElementById("myDiv").TextContent = "some div content";
    

    【讨论】:

    • 是的,成功了。它现在正在工作。谢谢你。将您的答案标记为答案,但必须等待 16 小时才能给您赏金...再次感谢
    猜你喜欢
    • 2012-06-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-05-07
    • 2011-09-15
    • 2011-02-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多