gpt4 book ai didi

javascript - javascript 中的原型(prototype)继承不起作用

转载 作者:行者123 更新时间:2023-12-01 00:56:54 25 4
gpt4 key购买 nike

我正在编写一个 npm 模块来减少测试项目中的锅炉代码,并且该模块将作为开发依赖项添加到该测试项目中。我正在使用原型(prototype)继承来扩展现有的库(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 is not a function

最佳答案

你有一个错别字

Page.prototype.sendTex < --- // here

编辑:查看原型(prototype)文件是否被命中的最简单方法是随后立即记录原型(prototype)。

Page.prototype.sendText = async function(selector, text) {
let element = await this.waitForSelector(selector, {visible : true});
await element.type(text);
}

console.log(Page.prototype.sendText)

关于javascript - javascript 中的原型(prototype)继承不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56503741/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com