webview2浏览器窗口脚本失效,怎么修改

使用问题 · 1793 次浏览
Xanwus 创建于 2024-10-24 09:54

以下脚本的效果是将选中文本发送至网页的左侧输入框,如输入框中已有内容,则清空,最后空格触发右侧框运行

动作之前一直在用,这两天发现动作失效了,无法将文本发送到输入框了。

第一反应应该是第一步未能找到输入框了吧?难道是网站的结构变化了,如果是这种情况,该如何找到新的selector?

同样的网址,用非webview2的浏览器运行,还是可以用的,请问,问题出在哪?

 

$$// 找到输入框并输入文本
var inputBox = document.querySelector('.h-full:nth-child(1) > div:nth-child(1)');

// 清空输入框内容
inputBox.textContent = '';

// 设置输入框的值,并触发输入事件
inputBox.innerText = "{text}";
var inputEvent = new Event('input', { bubbles: true });
inputBox.dispatchEvent(inputEvent);

// 模拟按下空格键(触发右侧改写框开始运行)
var spaceKeyEvent = new KeyboardEvent('keydown', {
  key: ' ',
  code: 'Space',
  which: 32,
  keyCode: 32
});
document.dispatchEvent(spaceKeyEvent);

 

 

另外,我在输入框位置右键检查,复制选择器,得到一大串代码,选择哪一段比较合适:

#textareasContainer > div.mobile\:flex.mobile\:flex-col.mobile\:border-y.mobile\:border-y-neutral-next-100.rounded-es-inherit.min-w-0 > div.rounded-es-inherit.relative.min-w-0.h-full.min-h-\[240px\].md\:min-h-\[clamp\(250px\,50vh\,557px\)\].mobile\:min-h-0.mobile\:flex-1 > div.flex.h-full.flex-col.rounded-inherit.transition-colors.border.relative.border-transparent.mobile\:min-h-0.mobile\:border-transparent > div.flex-1.rounded-inherit.mobile\:min-h-0 > d-textarea > div:nth-child(1) > p


回复内容
CL 2024-10-24 10:40
#1
如果之前正常,可以退回到早期的quicker版本测试看看。 如果也不行了,说明是网页本身可能有变化。
Xanwus 回复 CL 2024-10-24 11:27 :

回退版本也没用。

动作使用量3000多,之前是正常的。所以大概率是网页本身变化。

但是,另一个动作是用非webview的浏览器控制模块截取的输入框选择器(上面的截图),现在仍可以正常运行,为什么这个webview2动作用不了呢?另外,这个webview2动作我设置了三个网页,其中两个无法发送到输入框,一个仍正常,另外一个无效的是ChatGPT网页,但是同样用chrome浏览器控制模块可以获取输入框焦点并发送成功。这就奇怪了。

回复主贴