无法展开页面中的所有 div
Cannot expand all the div in a page
我正在尝试展开 this 页面内所有可用的 div。特别是显示 mostra partite
的 div,例如:
查看 html 结构,我们有 class: event__header--no-my-games
折叠的 divs,所以我做了:
// page is the browser page
await page.WaitForSelectorAsync(".event"); // wait ajax completion
var divs = await page.QuerySelectorAllAsync(".event__header--no-my-games > .event__info");
foreach(var cd in divs)
{
await cd.ClickAsync();
}
第一个问题是站点显示 7 divs 崩溃,但我在 divs
变量上得到 20 divs。另外,当我这样做时:
string html = await page.GetContentAsync();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
没有展开的div,我做错了什么?
以下代码运行良好:
await page.WaitForSelectorAsync(".event"); // wait ajax completion
var divs = await page.QuerySelectorAllAsync(".event__header--no-my-games > .event__info");
foreach(var cd in divs)
{
await cd.ClickAsync();
}
问题是 Puppeteer
打开的浏览器有移动尺寸,在那种情况下,我正在寻找的选择器是不同的。
我修复了通过以下方式声明 Viewport
尺寸的问题:
Browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true,
ExecutablePath = "your chrome path",
DefaultViewport = new ViewPortOptions { Height = 1280, Width = 800}
});
这将使用正确的选择器以桌面模式打开网站。
希望这对某人有所帮助。
我正在尝试展开 this 页面内所有可用的 div。特别是显示 mostra partite
的 div,例如:
查看 html 结构,我们有 class: event__header--no-my-games
折叠的 divs,所以我做了:
// page is the browser page
await page.WaitForSelectorAsync(".event"); // wait ajax completion
var divs = await page.QuerySelectorAllAsync(".event__header--no-my-games > .event__info");
foreach(var cd in divs)
{
await cd.ClickAsync();
}
第一个问题是站点显示 7 divs 崩溃,但我在 divs
变量上得到 20 divs。另外,当我这样做时:
string html = await page.GetContentAsync();
HtmlDocument doc = new HtmlDocument();
doc.LoadHtml(html);
没有展开的div,我做错了什么?
以下代码运行良好:
await page.WaitForSelectorAsync(".event"); // wait ajax completion
var divs = await page.QuerySelectorAllAsync(".event__header--no-my-games > .event__info");
foreach(var cd in divs)
{
await cd.ClickAsync();
}
问题是 Puppeteer
打开的浏览器有移动尺寸,在那种情况下,我正在寻找的选择器是不同的。
我修复了通过以下方式声明 Viewport
尺寸的问题:
Browser = await Puppeteer.LaunchAsync(new LaunchOptions
{
Headless = true,
ExecutablePath = "your chrome path",
DefaultViewport = new ViewPortOptions { Height = 1280, Width = 800}
});
这将使用正确的选择器以桌面模式打开网站。
希望这对某人有所帮助。