首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PuppeteerSharp - querySelectorAll +单击

PuppeteerSharp - querySelectorAll +单击
EN

Stack Overflow用户
提问于 2021-04-05 08:18:36
回答 1查看 157关注 0票数 1

我是木偶新手。你能告诉我,在我的思考过程和代码中,我哪里出错了吗?我正在努力获取关于这个产品的评论:

https://www.newegg.com/gigabyte-geforce-rtx-2060-gv-n2060oc-6gd/p/N82E16814932115

单击从检索到的评论选项卡时,将加载所有评论

document.querySelectorAll(".tab-nav")[4]

此代码后的评论为null:

代码语言:javascript
复制
            using (var browser = await Puppeteer.LaunchAsync(options))
            {
                using (var page = await browser.NewPageAsync().ConfigureAwait(false))
                {
                    await page.GoToAsync("https://www.newegg.com/gigabyte-geforce-rtx-2060-gv-n2060oc-6gd/p/N82E16814932115");

                    var clickReviews = "document.querySelectorAll('.tab-nav')[4].click();";
                    var reviews = "Array.from(document.querySelectorAll('.comments-content'));";

                    await page.EvaluateExpressionAsync(clickReviews);
                    var reviews = await page.EvaluateExpressionAsync(reviews);
                    Console.WriteLine(reviews);
EN

回答 1

Stack Overflow用户

发布于 2021-04-05 19:56:38

EvaluateExpressionAsync不会返回DOM元素。您应该构建一个序列化的输出。例如,包含审阅文本的string[]

代码语言:javascript
复制
var reviews = "Array.from(document.querySelectorAll('.comments-content')).map(r => r.innerText);";
var reviews = await page.EvaluateExpressionAsync<string[]>(reviews);
Console.WriteLine(reviews);
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/66946977

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档