Я пишу модуль npm для уменьшения кода котла в моем тестовом проекте, и этот модуль будет добавлен как зависимость dev в этом тестовом проекте.Я использую наследование прототипов для расширения существующей библиотеки (кукловод).Но, похоже, не работает.Я не уверен, как и когда этот модуль будет загружен?
Я локально установил модуль в тестовом проекте.
Код из локального модуля npm:
let {Page} = require('puppeteer/lib/Page');
Page.prototype.element = async function(selector) {
return await this.waitForSelector(selector, {visible : true});
}
Page.prototype.sendText = async function(selector, text) {
let element = await this.waitForSelector(selector, {visible : true});
await element.type(text);
}
Мой тестовый код:
jest.setTimeout(60000);
const Browser = require('puppet/factory/BrowserFactory')
require('puppet/puppeteer-extend/Page')
let page;
let browser;
describe('awesome test', () => {
it('something will be ok', async () => {
page = await global.__BROWSER__.newPage()
console.log(await page.hasOwnProperty('sendText'))
await page.goto('https://google.com')
await page.sendText('#fakebox-input', "puppeteer")
await page.screenshot({path: 'google.png', fullPage: true})
await page.close()
})
})
TypeError: page.sendText не является функцией