<code>==> autoremove.html <==
<!DOCTYPE html>
<html>
<head>
<title>Delayed Deletion</title>
</head>
<body>
<button id="myButton">Click me!</button>
<script>
var button = document.getElementById("myButton");
setTimeout(function() {
button.remove();
}, 3000);
</script>
</body>
</html>
==> main.js <==
#!/usr/bin/env node
// vim: set noexpandtab tabstop=2:
const puppeteer = require('puppeteer');
const browserURL = 'http://127.0.0.1:9222';
const url = process.argv[2]
let browser;
(async () => {
const browser = await puppeteer.connect({browserURL});
const page = await browser.newPage();
await page.goto(url);
await page.waitForFunction(() => !document.querySelector('#myButton'));
console.log('there');
await page.close();
})()
.catch(err => console.error(err))
.finally(
() => browser?.disconnect()
)
</code>
<code>==> autoremove.html <==
<!DOCTYPE html>
<html>
<head>
<title>Delayed Deletion</title>
</head>
<body>
<button id="myButton">Click me!</button>
<script>
var button = document.getElementById("myButton");
setTimeout(function() {
button.remove();
}, 3000);
</script>
</body>
</html>
==> main.js <==
#!/usr/bin/env node
// vim: set noexpandtab tabstop=2:
const puppeteer = require('puppeteer');
const browserURL = 'http://127.0.0.1:9222';
const url = process.argv[2]
let browser;
(async () => {
const browser = await puppeteer.connect({browserURL});
const page = await browser.newPage();
await page.goto(url);
await page.waitForFunction(() => !document.querySelector('#myButton'));
console.log('there');
await page.close();
})()
.catch(err => console.error(err))
.finally(
() => browser?.disconnect()
)
</code>
==> autoremove.html <==
<!DOCTYPE html>
<html>
<head>
<title>Delayed Deletion</title>
</head>
<body>
<button id="myButton">Click me!</button>
<script>
var button = document.getElementById("myButton");
setTimeout(function() {
button.remove();
}, 3000);
</script>
</body>
</html>
==> main.js <==
#!/usr/bin/env node
// vim: set noexpandtab tabstop=2:
const puppeteer = require('puppeteer');
const browserURL = 'http://127.0.0.1:9222';
const url = process.argv[2]
let browser;
(async () => {
const browser = await puppeteer.connect({browserURL});
const page = await browser.newPage();
await page.goto(url);
await page.waitForFunction(() => !document.querySelector('#myButton'));
console.log('there');
await page.close();
})()
.catch(err => console.error(err))
.finally(
() => browser?.disconnect()
)
I have the above node js program and html code.
When I run it like the following, I’d like the program to finish when the element is removed from the browser. But the program hangs there.
<code>./main.js file://"$PWD"/autoremove.html
</code>
<code>./main.js file://"$PWD"/autoremove.html
</code>
./main.js file://"$PWD"/autoremove.html
Can I wait until an element is removed from the browser?