我的测试在模式下运行 Puppeteerheadless: false并打开几个选项卡。
如果我在另一个应用程序窗口中 - 每当它打开一个新选项卡时 - 它会将 Chromium 聚焦到视图中。
这很烦人。有什么办法让它在后台运行吗?
我使用的是 macOS 10.14
我的扩展程序有一个包含项目的上下文菜单。我希望它做的是:当我右键单击一个editablehtml 元素(例如 input 或 textarea),然后选择并单击菜单中的一个项目时 - 由我的扩展定义的一些值被输入到输入中。
现在我已经意识到,与document.activeElement.value = myValue.
通过简单的输入,它可以正常工作。
当有自定义onChange事件处理的输入时,问题就开始了,例如日历或电话输入,或货币输入 - 以某种方式转换用户输入。
由于我直接在元素上设置一个值 - 处理逻辑被省略,这会导致各种问题。
由于 javascript 不允许类似 KeySend 的功能 - 我在这里有什么选择?
我曾考虑过像 Puppeteer 或 Cypress 这样的测试工具 - 但它们似乎都不能打包到扩展中。Puppeteer 确实有这样的选项,但它仍然需要一个运行的节点实例来连接。而且我希望我的扩展程序仅在客户端并分发在 Chrome 网上商店中 - 所以我不能要求我的用户运行启动节点服务器。
如何通过命令行将多个包添加到我的项目中?我知道我可以通过批处理脚本执行此操作,但添加到.bat文件只执行第一行,然后退出.
例如run.bat:
meteor add mquandalle:stylus
meteor add coffeescript
meteor add mquandalle:jade
meteor add dburles:lazy
仅将第一个包添加到项目中.
我有使用具有水平变化的菜单MyMenu的功能组件 :antd
import React from 'react'
import {Menu} from 'antd'
function MyMenu() {
return (
<Menu
mode={'horizontal'}
>
<Menu.Item key='Home'>Home</Menu.Item>
<Menu.Item key='SignUp'>Sign up</Menu.Item>
</Menu>
)
}
Run Code Online (Sandbox Code Playgroud)
现在,我想做的是创建一个默认 HorizontalMenu使用的 func.component 。<Menu mode={'horizontal'}></Menu>
我尝试这样做:
function HorizontalMenu(props) {
return (
<Menu
mode={'horizontal'}
>
{props.children}
</Menu>
)
}
function MyMenu() {
return (
<HorizontalMenu>
<HorizontalMenu.Item key='Home'>Home</HorizontalMenu.Item>
<HorizontalMenu.Item key='SignUp'>Sign up</HorizontalMenu.Item>
</HorizontalMenu>
)
}
Run Code Online (Sandbox Code Playgroud)
但菜单项永远不会被渲染。
编辑
读完我自己的问题后,我想到我可以简单地做
HorizontalMenu.Item = Menu.Item
Run Code Online (Sandbox Code Playgroud)
然后一切都按预期进行。
但这是正确的做法吗?
是否有一种优雅的方法可以消除所有parsedData.单词?在我看来,这不是很干。
function foo(parsedData) {
const finalData = {
KPP: parsedData.KPP,
OGRN: parsedData.OGRN,
principalShortName: parsedData.name.short,
principalFullName: parsedData.name.full,
principalLegalAddress: parsedData.address.legal,
principalRealAddress: parsedData.address.real,
OKATO: parsedData.OKATO,
principalRegistrationDate: moment(parsedData.history.registration),
principalTaxRegistrationDate: moment(parsedData.history.taxRegistration),
OKOPF: parsedData.OKOPF,
OKVED: parsedData.OKVED,
headFullName: parsedData.head.fullName,
headTitle: parsedData.head.fullName,
});
}
Run Code Online (Sandbox Code Playgroud)