簡體   English   中英

Puppeteer Sharp 中的 page.EvaluateFunctionAsync() 返回一個空數組

[英]page.EvaluateFunctionAsync() in Puppeteer Sharp is returning an empty array

我正在抓取此網站的信息,使用 C# 中的 Puppeteer Sharp:

https://www.grimtools.com/calc/Q2z07a9Z

如果我在 Chrome 中打開開發工具,go 到控制台並輸入“dumpSkills()”,我會得到一個很好的數組 JSON 作為響應:

(24) [{…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}, {…}]

我想在 C# 中的一個變量中獲取這些對象。

我可以使用以下方法在 JS Puppeteer 中運行它:

const skills = await page.evaluate(() => {
  return dumpSkills();
});

這樣做似乎返回相同的數組。 耶,但是。 我一直在努力讓這個在 Puppeteer Sharp 中工作:這些是我嘗試過的東西:

var skills = await page.EvaluateFunctionAsync("dumpSkills()");

var skills = await page.EvaluateExpressionAsync(@"()=>{
    return dumpDevotion();
}");

我也嘗試過WaitForExpressionAsync()WaitForFunctionAsync() ,但似乎無法正常工作。 根據我使用的方法,我似乎得到空的“[]”或“{}”。

我究竟做錯了什么?

我創建了一個小的 class model 到 map 通過奉獻返回的值:

class Devotion
{
  public string id { get; set; }
  public string name { get; set; }
  public string details { get; set; }
}

然后您可以告訴EvaluateFunctionAsync返回奉獻列表。

var devotions = await page.EvaluateFunctionAsync<List<Devotion>>("() => dumpDevotion()");

在此處輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM