如何使用 HtmlAgilityPack 调用成员
How to InvokeMember using HtmlAgilityPack
我想用HtmlAgilityPack
class登录。但是我不知道怎么办。
这是我试过的。但是没用。
txtUserName.Text = "username";
txtPassword.Text = "password";
HtmlAgilityPack.HtmlDocument doc = new HtmlWeb().Load("about:Tabs");
doc.GetElementbyId("username").SetAttributeValue("value", txtUserName.Text);
doc.GetElementbyId("password").SetAttributeValue("value", txtPassword.Text);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//button[@class='btn login-btn blue pull-right btn-primary']"))
{
node[0].InvokeMember("click");//wrong code
}
我不能使用WebBrowser
class.
HtmlAgilityPack 只能解析 html。
改用 WebClient。
我找到了一种使用 Selenium
登录的方法,我认为这是最好的方法:
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("Your Address Login");
IWebElement query = driver.FindElement(By.Id("username"));
query.SendKeys("Your Username");
query = driver.FindElement(By.Id("password"));
query.SendKeys("Your Password");
query.Submit();
下载后添加引用 WebDriver.dll
并使用命名空间 OpenQA.Selenium.Firefox;
了解更多Here
我想用HtmlAgilityPack
class登录。但是我不知道怎么办。
这是我试过的。但是没用。
txtUserName.Text = "username";
txtPassword.Text = "password";
HtmlAgilityPack.HtmlDocument doc = new HtmlWeb().Load("about:Tabs");
doc.GetElementbyId("username").SetAttributeValue("value", txtUserName.Text);
doc.GetElementbyId("password").SetAttributeValue("value", txtPassword.Text);
foreach (HtmlNode node in doc.DocumentNode.SelectNodes("//button[@class='btn login-btn blue pull-right btn-primary']"))
{
node[0].InvokeMember("click");//wrong code
}
我不能使用WebBrowser
class.
HtmlAgilityPack 只能解析 html。
改用 WebClient。
我找到了一种使用 Selenium
登录的方法,我认为这是最好的方法:
IWebDriver driver = new FirefoxDriver();
driver.Navigate().GoToUrl("Your Address Login");
IWebElement query = driver.FindElement(By.Id("username"));
query.SendKeys("Your Username");
query = driver.FindElement(By.Id("password"));
query.SendKeys("Your Password");
query.Submit();
下载后添加引用 WebDriver.dll
并使用命名空间 OpenQA.Selenium.Firefox;
了解更多Here