我发现了NHtmlUnit来构建应用程序Web。但是当我尝试使用自动登录雅虎邮件时。但在我运行代码之后。我刷新雅虎的登录页面,所以没有任何改变。没有记录。
代码:
NHtmlUnit.WebClient driver = new NHtmlUnit.WebClient();
driver.Options.JavaScriptEnabled = true;
driver.Options.ThrowExceptionOnScriptError = false;
driver.Options.ActiveXNative = true;
driver.Options.CssEnabled = true;
HtmlPage page = driver.GetHtmlPage("https://login.yahoo.com/config/login?");
HtmlForm form = page.GetFormByName("login_form");
HtmlTextInput user = (HtmlTextInput)form.GetInputByName("login");
HtmlPasswordInput pass = (HtmlPasswordInput)form.GetInputByName("passwd");
user.SetValueAttribute("my account");
pass.SetValueAttribute("my pass");
HtmlSubmitInput submitButton = (HtmlSubmitInput)page.GetElementByName(".save");
HtmlPage nextpage = (HtmlPage)submitButton.Click();
请帮我解释原因。我在.NET MVC 4 C#上写它。非常感谢你。
答案 0 :(得分:0)
仅更新以下单行,因此您可能会遇到类投射异常
HtmlButton submitButton = (HtmlButton)page.GetElementByName(".save");
答案 1 :(得分:0)
代码完全正常,应该有效。
您认为不是的原因可能是您用错误的方法检查它!
使站点(即login.yahoo.com)将您视为登录用户的一个基本要素是,当您使用登录表单时,它为您的浏览器/ webdriver提供的cookie,因此如果您使用登录过程{ {1}}(即NHtmlUnit.Webclient
)然后您只能登录driver
网络客户端,而不是在任何其他浏览器或客户端内,即使在同一台计算机上也是如此。
我尝试将此添加为评论,但我没有足够的声誉。