使用GetElementsById搜索网站

时间:2013-10-21 16:32:04

标签: c# html linq filter

string entry = Titleentry.Text;

HtmlElementCollection theElementCollection;
HtmlDocument filters = webBrowser1.Document;

theElementCollection = webBrowser1.Document.GetElementsByTagName("input");

foreach (HtmlElement curElement in theElementCollection)
{
    if ((curElement.GetAttribute("id").ToString() == "searchTitle"))
    {
        curElement.SetAttribute("value", entry);
    }
}

filters.GetElementById("filterSortBy").GetAttribute("option").Select("price_low_high");

theElementCollection = webBrowser1.Document.GetElementsByTagName("button");

foreach (HtmlElement curElement in theElementCollection)
{
    if (curElement.GetAttribute("id").Equals("searchSubmit"))
    {
        curElement.InvokeMember("click");
    }
}

标记的声明给了我以下信息:

  

错误1方法的类型参数' System.Linq.Enumerable.Select(System.Collections.Generic.IEnumerable,System.Func)'无法从使用中推断出来。尝试显式指定类型参数。

我想要做的是从网站获取ID元素,因为如果我按标记名称尝试元素,则选择不正确的元素

我尝试使用html集合,但它说不能隐式地将html元素转换为html集合

1 个答案:

答案 0 :(得分:0)

首先,Select需要Func<TSource, TResult>,而不仅仅是一个字符串,说明你想要的内容。其次,为什么你首先尝试使用SelectGetAttribute返回属性值的字符串。只需声明一个字符串即可捕获该值。

string option = filters.GetElementById("filterSortBy").GetAttribute("option");