我正在尝试以编程方式登录1个网站。我有以下代码不起作用:
WebBrowser webBrowser = new WebBrowser();
webBrowser.Navigate("http://www.smarsy.ua");
while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
System.Windows.Forms.Application.DoEvents();
System.Threading.Thread.Sleep(500);
HtmlDocument doc = webBrowser.Document;
doc.GetElementById("username").InnerText = "username";
doc.GetElementById("password").InnerText = "password";
doc.GetElementById("inputButton").InvokeMember("Click");
while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
System.Windows.Forms.Application.DoEvents();
System.Threading.Thread.Sleep(500);
webBrowser.Navigate("http://smarsy.ua/private/parent.php");
while (webBrowser.ReadyState != WebBrowserReadyState.Complete)
System.Windows.Forms.Application.DoEvents();
System.Threading.Thread.Sleep(500);
网页:
...
<input class="validate[required,minSize[8],custom[onlyNumber]] full" type="text" id="username" name="username" maxlength="8" value="" data-com.agilebits.onepassword.user-edited="yes" data-cip-id="username" autocomplete="off">
...
<input class="validate[required,minSize[6],custom[onlyPassword]] full" type="password" id="password" name="password" maxlength="24" value="" data-cip-id="password" data-com.agilebits.onepassword.user-edited="yes">
...
<input type="submit" name="submit" value="Ввійти" class="full passive">
怎么了?或者您可能会建议我使用C#
废弃网站的好框架答案 0 :(得分:1)
您的问题是按钮没有被您的方法点击。我测试了它如下:
替换您的代码行:
doc.GetElementById("inputButton").InvokeMember("Click");
有了这个:
HtmlElementCollection Bclick = webBrowser.Document.GetElementsByTagName("input");
foreach (HtmlElement Btn in Bclick)
{
string name = Btn.Name;
if (name == "submit")
Btn.InvokeMember("click");
}