【发布时间】:2019-06-08 05:29:46
【问题描述】:
我正在编写一个 npm 模块来减少我的测试项目中的锅炉代码,并且这个模块将作为开发依赖项添加到该测试项目中。我正在使用原型继承来扩展现有库(puppeteer)。但它似乎不起作用。我不确定如何以及何时加载此模块?
我已经在测试项目中本地安装了模块。
来自本地 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 不是函数
【问题讨论】:
标签: javascript node.js function ecmascript-6 puppeteer