问题描述
我对javascript非常陌生,所以这可能是一个基本问题。
我正在使用Puppeteer尝试抓取webpage并在页面上下载视频。我正在使用video downloader extension来获取视频URL。我的想法是在浏览器中自动打开页面,然后单击视频下载按钮(由扩展程序生成)以下载视频。但是我遇到了一些问题:
我需要播放视频,以便出现下载按钮。我可以通过使用puppeteer单击播放按钮来做到这一点。但是,在视频开始播放后,我无法在视频上单击由扩展程序生成的新下载按钮。我可以从视觉上看到按钮,但是Puppeteer崩溃并显示错误:
No node found for selector: button[class="ext_dl-button rounded-Box"]
我认为这是因为扩展程序添加的下载按钮是动态添加到网页中的,并且伪造者page
对象对此一无所知。
任何帮助伪造者单击扩展程序生成的下载按钮的方法,将不胜感激。 :)
(async () => {
const customArgs = [
`--load-extension=${pathToExt}`
];
browser = await puppeteer.launch({
headless:false,ignoreDefaultArgs: ["--disable-extensions","--enable-automation"],args: customArgs,});
page = await browser.newPage();
await page.setViewport({
width: 1280,height: 720,deviceScaleFactor: 1,});
await page.goto('https://www.raywenderlich.com/sessions/new');
console.log("Logging in...\n")
await page.type('input[name="username"]',username,{delay:100})
await page.type('input[name="password"]',password,{delay:80})
await Promise.all([
page.click('button[type="submit"]'),page.waitForNavigation()
])
await Promise.all([
page.goto('https://www.raywenderlich.com/8984-mvvm-on-android/lessons/1'),page.waitForNavigation()
])
await sleep(3000)
await page.click('button[class="o-button o-button-video-start"]')
await sleep(3000)
await page.click('button[class="ext_dl-button rounded-Box"]')
await sleep(10000000)
await browser.close();
})();
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)