puppeteerにて、アクセスしたサイトに掲載されている外部へのリンクに対してClick()処理ができず困っています。
const url = 'https://jp.techcrunch.com/2020/12/16/2020-12-15-bandcamp-fridays-will-continue-through-next-may/' const browser = await chromium.puppeteer.launch({ args: chromium.args, defaultViewport: chromium.defaultViewport, executablePath: await chromium.executablePath, headless: chromium.headless, }); let page = await browser.newPage(); await page.goto(url); console.log(await page.title()); const selector = 'a[href^="https://prtimes.jp/"]' await page.click(selector) console.log(await page.title());
urlのページはサンプルですが、こちらでも外部ページへのアクセスはできませんでした。
サンプルページ
selectorの要素はしっかり認識しているようですが、クリック処理だけされず、クリック処理後も同じページタイトルが表示されます。
試したこと
ページの待機処理は試しましたが、いくら待っても遷移先のページは表示されません。
- 時間指定による待機処理
- 遷移先のページで要素が表示されるまでの待機処理
これら2つはtimeoutするまで待機しましたが駄目でした。
target="_blank"に対してのタブの切り替え
browser.on('targetcreated', async (target:any) => { const newPage = await target.page(); console.log(await newPage.title()); await newPage.close(); }); const el = await page.$(selector); await el.click();
実際のコードは上記ですが、遷移先のページタイトルは取得できませんでした。
質問
- 外部リンクがクリックできないのは使用ですか?
- 回避先のアイデアがあれば教えて下さい。
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。