以编程方式单击c#中的链接

时间:2012-08-10 02:09:46

标签: c# html

我正在尝试以编程方式创建脚本。

我设法将孔html页面变为字符串,现在我想以某种方式点击我在那里的元素。我有点失落,所以任何信息都可以帮助。

我试图将文档作为HtmlDocument获取,但出于某种原因,当我使用getElementById方法时,它找不到该元素。

请,任何信息都会有所帮助。

感谢。

目前这是我得到的代码, 它让我知道我有字符串,它的值是html文档,现在我需要一些如何提取相关标记并以编程方式单击它。

感谢您的投入, 还在等待一个可以帮助我的人。

string email = "someemail*";`enter code here`
string pw = "somepass";
string PostData = String.Format("email={0}&pass={1}", email, pw);

CookieContainer cookieContainer = new CookieContainer();

HttpWebRequest req = (HttpWebRequest)HttpWebRequest.Create("http://www.facebook.com/*******");
req.CookieContainer = cookieContainer;
req.Method = "POST";
req.ContentLength = PostData.Length;
req.ContentType = "application/x-www-form-urlencoded";
req.AllowAutoRedirect = true;
req.UserAgent = "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/535.2 (KHTML, like Gecko) Chrome/15.0.874.121 Safari/535.2";

ASCIIEncoding encoding = new ASCIIEncoding();
byte[] loginDataBytes = encoding.GetBytes(PostData);
req.ContentLength = loginDataBytes.Length;
Stream stream = req.GetRequestStream();
stream.Write(loginDataBytes, 0, loginDataBytes.Length);

HttpWebResponse webResp = (HttpWebResponse)req.GetResponse();

Stream datastream = webResp.GetResponseStream();
StreamReader reader = new StreamReader(datastream);
string sLine = "";
string json = "";
while (sLine != null)
{
    sLine = reader.ReadLine();
    json += sLine;
}
json.ToString();

3 个答案:

答案 0 :(得分:1)

也许你可能想看看WaitN,它可以让你真正轻松地完成这一切

答案 1 :(得分:0)

“点击链接”与发送HTTP请求相同。如果您可以从您拥有的文档中解析URI,则可以单独创建HTTP请求并发送该请求。

答案 2 :(得分:0)

点击链接是通过为链接的href发出HTTP-Get来完成的。

如果存在JavaScript交互性,则需要使用webbrowser元素,并在document.ready执行document.getElementById("whatever").click()

上注入一个javascript。

请参阅 How do I programmatically click a link with javascript?

您可以使用HTML敏捷包来解析HTML文档并提取HREF参数。