在使用交互式窗口时,是否有一种方法可以连接到像Phantom这样的加密钱包(需要Solana区块链(?我试着找到一个按钮,点击";连接钱包";,但是chrome扩展不会像在普通浏览器中那样在交互式窗口中弹出。
您似乎已经让puppeteer加载了Chrome扩展,但如果您还没有加载的话。你会想添加这样的参数:
const browser = await puppeteer.launch({
headless: false,
devtools,
args: [
'--disable-extensions-except=./replacer-chrome-extension',
'--load-extension=./replacer-chrome-extension',
],
...(slowMo && { slowMo }),
});
第2步:查找扩展ID。您尝试查找元素的想法是正确的,但该扩展是一个不同的DOM树,因此我们希望通过引用chrome-extension://
命名空间来访问这些资源,将该扩展加载到一个新的选项卡中。
const extensionTarget = targets.find(target => target.type() === 'service_worker');
const partialExtensionUrl = extensionTarget._targetInfo.url || '';
const [, , extensionID] = partialExtensionUrl.split('/');
如何检索Manifest V2扩展的扩展id如何检索Manifest V2扩展的扩展id?const PAGE_TITLE="文本替换器扩展名";const targets=等待browser.targets((;extensionTarget=targets.find(({_targetInfo}(=>_targetInfo.title===PAGE_title(;const partialExtensionUrl=扩展目标_targetInfo.url||'';
一旦我们计算出id,我们就在选项卡中加载扩展,类似于应用程序,我们获取页面引用并返回它。
const extPage = await browser.newPage();
const extensionUrl = `chrome-extension://${extensionId}/popup.html`;
await extPage.goto(extensionUrl, { waitUntil: 'load' });
return {
appPage,
browser,
extensionUrl,
extPage,
};
来源:https://tweak-extension.com/blog/complete-guide-test-chrome-extension-puppeteer/