如何在C#中使用puppeteer-sharp和XPath获取列表中所有li元素的innertext



我正试图从";李-元素。我似乎遇到了一些问题,变量has中有19个元素,但我不知道如何挑选实际的innertext值:

string xpath = "//h1[@title='UL']//li";
IElementHandle[] has = await ((IPage)pageTabel).XPathAsync(xp);
IJSHandle ha = has[0].GetPropertiesAsync("value");

我认为例如

foreach (var listItem in has)
{
Console.WriteLine((await listItem.GetPropertyAsync("textContent")).RemoteObject.Value.ToString()); 
}

会起作用。我不知道浏览器是否也实现了(最初仅限IE)innerText属性,如果他们实现了,那么当然上面的GetPropertyAsync("innerText")也应该起作用。

如果您更喜欢强类型体验,那么PuppeterSharp.Dom为PuppeteerSharp提供了一组扩展。

Nuget.org安装PuppeterSharp.Dom,然后就可以使用强类型扩展了。

// Add using PuppeteerSharp.Dom; to access XPathAsync<T>
string xpath = "//h1[@title='UL']//li";
var has = await ((IPage)pageTabel).XPathAsync<HtmlListItemElement>(xpath);
foreach (var listItem in has)
{
var textContent = await listItem.GetTextContentAsync();
}

最新更新