我正在尝试使用C#程序登录网站。现在,我的程序访问该网站并打开我想要的链接,但是重定向到一个页面,其中显示了登录链接,我转到该页面并显示登录表单。现在,我只是将此程序运行在控制台应用程序中,当我将其放入winform时,我希望唯一的输入是用户名和密码。
我使用webclient,MSHTML和SHDocVw以及HTTPRequest尝试了几种不同的方法。
<fieldset class="input">
<p id="com-form-login-username">
<label for="username">Username</label><br />
<input name="username" id="username" type="text" class="inputbox" alt="username" size="18" />
</p>
<p id="com-form-login-password">
<label for="passwd">Password</label><br />
<input type="password" id="passwd" name="passwd" class="inputbox" size="18" alt="password" />
</p>
<p id="com-form-login-remember">
<label for="remember">Remember Me</label>
<input type="checkbox" id="remember" name="remember" class="inputbox" value="yes" alt="Remember Me" />
</p>
<input type="submit" name="Submit" class="button" value="Login" />
</fieldset>
我希望能够访问第一个链接并提取所有源代码以获取所需的信息。
答案 0 :(得分:0)
我认为您正在寻找硒,它是一个非常有用的自动化库,它也可以以无头模式运行,这意味着它不会在自动化操作发生的地方显示google标签。 您还可以获得元素值和更多内容
上看到更多信息答案 1 :(得分:0)
我设法找出了无法使Selenium正常工作的东西。
wb.Visible = true;
wb.Navigate(MainSite);
{
while (wb.Busy) { Thread.Sleep(100); }
document = ((HTMLDocument)wb.Document);
if (document.body.outerHTML.Contains("Logout")) { Loggedin = true; }
if (!(document.body.outerHTML.Contains("Logout"))) { Loggedin = false; }
if (Loggedin == false)
{
element = document.getElementById("Username");
username = (HTMLInputElement)element;
username.value = Username;
username = null;
element = document.getElementById("Passwd");
password = (HTMLInputElement)element;
password.value = Password;
password = null;
element = document.getElementById("Submit");
Submit = (HTMLInputElement)element;
Submit.click();
Submit = null;
while (wb.Busy) { Thread.Sleep(100); }
SourceCode = document.body.outerHTML;
}
}