Я пытаюсь поместить в класс вызов кукловода, объект браузера и объект страницы.Но я не могу использовать его при использовании объектной модели страницы.Члены страницы не определены.
В каждом найденном примере я всегда видел вызов кукловода, а также браузер и объект страницы в основной функции.Я предполагаю, что это проблема с контекстным доступом.
Но возможно архивировать то, что я ищу, и при этом иметь возможность использовать хотя бы объект страницы в объектных файлах страницы?
main.mjs
import Browser from './browser.mjs'
import HomePage from './HomePage.mjs'
async function main () {
const browser = new Browser();
const homePage = new HomePage(browser.page);
await homePage.open();
console.log(await homepage.getTitle());
await browser.close();
}
main();
browser.mjs
class Browser {
constructor() {
return this.main(); // I know, that's ugly
}
async main() {
this.browser = await puppeteer.launch({
headless: false,
});
this.page = await browser.newPage();
return this.browser,this.page
}
}
export default Browser
homepage.mjs
class HomePage {
constructor(page) {
this.page = page;
}
async open() {
this.page.goto('http://www.contoso.com');
}
async getTitle() {
return this.page.title();
}
}
export default HomePage