使用 Puppeteer 时找不到帧 #

Frame # not found when using Puppeteer

我在使用 Puppeteer 时遇到问题,我正在尝试在 IFrame 中的文本框中键入内容。 我创建了一个带有代码片段的简单存储库,这个存储库包含一个带有来自 Twitter 的推文的 IFrame。

await new BrowserFetcher().DownloadAsync(BrowserFetcher.DefaultChromiumRevision);
var launchOptions = new LaunchOptions
{
    Headless = false,
    DefaultViewport = null
};
launchOptions.Args = new[] { "--disable-web-security", "--disable-features=IsolateOrigins,site-per-process" };
ChromeDriver = await Puppeteer.LaunchAsync(launchOptions);

page = await ChromeDriver.NewPageAsync();
await page.GoToAsync(Url, new NavigationOptions { WaitUntil = new WaitUntilNavigation[] { WaitUntilNavigation.Networkidle0 } });
var selectorIFrame = "#twitter_iframe";
var frameElement1 = await page.WaitForSelectorAsync(selectorIFrame);
var frame1 = await frameElement1.ContentFrameAsync();
var frameContent1 = await frame1.GetContentAsync();

var frame1 = await frameElement1.ContentFrameAsync(); 失败并显示 Frame # not found,请参阅下面的错误图片。

版本:

尝试禁用一些在launching puppeteer时可以禁用的安全功能。

检查 puppeteer chrome://flags/ 以防有东西阻止 iframe 访问,可能是不安全的内容,或者您​​可能必须明确隔离试验。

我的 2 美分,它应该允许它从不安全的地方访问它

Args = new[]
    {
        "--disable-web-security",
        "--disable-features=IsolateOrigins,site-per-process,BlockInsecurePrivateNetworkRequests",
        "--disable-site-isolation-trials"
    }