fix: use CDP Input.insertText for reliable text insertion

The previous document.execCommand('insertText') caused text to be
duplicated multiple times. Switch to CDP's Input.insertText for
more reliable text input.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
threenrm
2026-01-21 18:21:36 +08:00
parent 8cc8d25ad1
commit d793c19a72
+7 -8
View File
@@ -310,15 +310,14 @@ export async function quotePost(options: QuoteOptions): Promise<void> {
// Type the comment if provided
if (comment) {
console.log('[x-quote] Typing comment...');
const commentJson = JSON.stringify(comment);
// Use CDP Input.insertText for more reliable text insertion
await cdp.send('Runtime.evaluate', {
expression: `
const editor = document.querySelector('[data-testid="tweetTextarea_0"]');
if (editor) {
editor.focus();
document.execCommand('insertText', false, ${commentJson});
}
`,
expression: `document.querySelector('[data-testid="tweetTextarea_0"]')?.focus()`,
}, { sessionId });
await sleep(200);
await cdp.send('Input.insertText', {
text: comment,
}, { sessionId });
await sleep(500);
}