点击网页中的“提交”按钮

本文关键字:提交 按钮 网页 | 更新日期: 2023-09-27 18:29:48

我使用Winrt,试图解析HTML页面的结果。

但要得到结果,我必须填写一个搜索页面并点击提交按钮。

在Win-RT中通过代码可以做到这一点吗?

点击网页中的“提交”按钮

如果你使用WinJS查询找到你的按钮,你可以用程序触发点击事件,如下所示:

element.fireEvent("onclick");

我想您还没有下载该页面(或显示在WebView中)。要进行请求,请仔细查看HttpClient和HttpClientHandler。根据页面是使用GET还是POST,您还需要创建一个HttpRequestMessage。搜索表单的url(通常是表单的action属性)以了解您的请求uri。

示例:

var ClientHandler = new HttpClientHandler();
ClientHandler.UseCookies = true;
ClientHandler.AllowAutoRedirect = true;
ClientHandler.UseDefaultCredentials = true;
ClientHandler.AutomaticDecompression = DecompressionMethods.Deflate | DecompressionMethods.GZip;
var Client = new HttpClient(ClientHandler);
Client.DefaultRequestHeaders.Add("Accept", "text/html, application/xhtml+xml, */*");           
Client.DefaultRequestHeaders.Add("User-Agent", "Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.2; WOW64; Trident/6.0)");
var Response = await Client.GetAsync(RequestUri);

您的RequestUri可能类似http://www.example.com/search?query=search.但是,如果你想要的页面使用POST提交你的查询,我认为你需要创建一个HttpRequestMessage,如下所示:

var RequestMessage = new HttpRequestMessage();
RequestMessage.Content = new StringContent(YourPostData, Encoding.UTF8, "application/x-www-form-urlencoded");
RequestMessage.Method = HttpMethod.Post;
RequestMessage.RequestUri = new Uri(OtherRequestUri);
Response = await Client.SendAsync(RequestMessage);

我认为,要解析响应的内容,最好使用HtmlAgilityPack。