#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
}