C # selenium загружает html

#c# #selenium #selenium-webdriver

#c# #селен #selenium-webdriver

Вопрос:

Я хочу загрузить html из WebClient() драйвера selenium. У меня есть:

  WebClient glavniklijent = new WebClient();
 string HTML = glavniklijent.DownloadString("http://www.bodum.com/gb/en-us/shop/detail/10948-01/");
  

Если я сохраню его как локальный HTML-файл, а затем перейду по нему

  driver.Navigate().GoToUrl(localfile);
  

Это не поможет, потому что тогда он будет запрашивать онлайн-ресурсы. Которые занимают слишком много времени.

Также я пробовал с Javascript Executor

 IJavaScriptExecutor js = driver as IJavaScriptExecutor;
            string title = (string)js.ExecuteScript("document.write('"   HTML  "')"); 
  

Но это не работает.

Причина, по которой я это делаю, для меня самый простой способ синтаксического анализа html — с помощью драйвера Selenum, я пробовал, HtmlAgilityPack но я никогда не использовал его раньше, и он кажется намного сложным по сравнению с Selenium Select By Id, Select by classname и т. Д.

Могу ли я загрузить это с помощью selenium локально? Существует ли анализатор html, похожий на selenium?

Ответ №1:

Попробуйте CsQuery

https://github.com/jamietre/CsQuery

https://www.nuget.org/packages/CsQuery/

Это упрощает синтаксический анализ HTML, очень похожий на jQuery:

 var document = CsQuery.CQ.CreateDocument(html);
foreach (var element in document.Select("ul.somelist > li.thread")) 
{
    // do something with element
}