好吧,问题很简单。
我在一个类文件中有一个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) && e.keyCode == 13 && $('#user').val() && $('#password').val()) $('#login_button').trigger('click');">所以我的想法是...我是不是用错了TextContent?
而这(以及触发按钮等)不是用javascript就能简单得多吗?
所以我用谷歌搜索了它,但我唯一能找到的就是如何从javascript调用C#函数,或者如何从C#调用javascript函数。但我不是这些网站的所有者,所以这是行不通的。
那么你对此有什么看法呢?
发布于 2013-01-11 09:26:53
而不是:
globalVars.mainBrowser.Document.GetElementById("user").TextContent = "User Name";您应该使用:
globalVars.mainBrowser.Document.GetElementById("user").SetAttribute("value", "User Name");您可以使用TextContent属性来设置<p />、<span />或<div />等HTML标记的内容。
globalVars.mainBrowser.Document.GetElementById("myDiv").TextContent = "some div content";https://stackoverflow.com/questions/14224372
复制相似问题