mirror of
https://github.com/fofolee/uTools-quickcommand.git
synced 2025-06-30 21:13:02 +08:00
新增表单提交功能:在浏览器命令中添加 submitForm 方法,支持通过选择器填写输入框并提交表单
This commit is contained in:
parent
f4245a5744
commit
603cadb2ef
@ -326,7 +326,7 @@ const executeScript = async (tab, script, args = {}) => {
|
|||||||
const argValues = Object.values(args).map((v) => JSON.stringify(v));
|
const argValues = Object.values(args).map((v) => JSON.stringify(v));
|
||||||
|
|
||||||
const wrappedScript = `
|
const wrappedScript = `
|
||||||
(function(${argNames.join(", ")}) {
|
(async function(${argNames.join(", ")}) {
|
||||||
${script}
|
${script}
|
||||||
})(${argValues.join(", ")})
|
})(${argValues.join(", ")})
|
||||||
`;
|
`;
|
||||||
|
@ -19,6 +19,27 @@ const inputText = async (tab, selector, text) => {
|
|||||||
);
|
);
|
||||||
};
|
};
|
||||||
|
|
||||||
|
const submitForm = async (tab, buttonSelector, inputSelectors) => {
|
||||||
|
return await executeScript(
|
||||||
|
tab,
|
||||||
|
`
|
||||||
|
const sleep = (ms) => new Promise((resolve) => setTimeout(resolve, ms));
|
||||||
|
let el = null;
|
||||||
|
${inputSelectors
|
||||||
|
.map(
|
||||||
|
(i) =>
|
||||||
|
`el = document.querySelector('${i.selector}');
|
||||||
|
el.value = '${i.value}';
|
||||||
|
el.dispatchEvent(new Event('input'));
|
||||||
|
el.dispatchEvent(new Event('change'));`
|
||||||
|
)
|
||||||
|
.join("await sleep(200);")}
|
||||||
|
await sleep(200);
|
||||||
|
document.querySelector('${buttonSelector}').click();
|
||||||
|
`
|
||||||
|
);
|
||||||
|
};
|
||||||
|
|
||||||
const getText = async (tab, selector) => {
|
const getText = async (tab, selector) => {
|
||||||
return await executeScript(
|
return await executeScript(
|
||||||
tab,
|
tab,
|
||||||
@ -116,6 +137,7 @@ const injectCSS = async (tab, css) => {
|
|||||||
module.exports = {
|
module.exports = {
|
||||||
clickElement,
|
clickElement,
|
||||||
inputText,
|
inputText,
|
||||||
|
submitForm,
|
||||||
getText,
|
getText,
|
||||||
getHtml,
|
getHtml,
|
||||||
hideElement,
|
hideElement,
|
||||||
|
@ -410,6 +410,30 @@ export const browserCommands = {
|
|||||||
},
|
},
|
||||||
],
|
],
|
||||||
},
|
},
|
||||||
|
{
|
||||||
|
value: "quickcomposer.browser.submitForm",
|
||||||
|
label: "提交表单",
|
||||||
|
icon: "send",
|
||||||
|
config: [
|
||||||
|
{
|
||||||
|
topLabel: "上方填要点击的提交按钮,下方添加要操作的输入框",
|
||||||
|
component: "ArrayEditor",
|
||||||
|
width: 12,
|
||||||
|
columns: {
|
||||||
|
selector: {
|
||||||
|
label: "输入框选择器",
|
||||||
|
options: {
|
||||||
|
cssSelector: true,
|
||||||
|
},
|
||||||
|
},
|
||||||
|
value: {
|
||||||
|
label: "要填入的值",
|
||||||
|
},
|
||||||
|
},
|
||||||
|
isCollapse: false,
|
||||||
|
},
|
||||||
|
],
|
||||||
|
},
|
||||||
{
|
{
|
||||||
value: "quickcomposer.browser.getText",
|
value: "quickcomposer.browser.getText",
|
||||||
label: "获取文本",
|
label: "获取文本",
|
||||||
|
Loading…
x
Reference in New Issue
Block a user