如何用JavaScript自动向Bing Chat输入问题并实现自动发送?
解决Bing Chat自动输入并发送的JavaScript实现问题
问题描述
我想要使用JavaScript自动向Bing Chat(链接:https://www.bing.com/search?q=Bing+AI&showconv=1&FORM=hpcodx)的对话框输入问题并自动发送,但通过JavaScript输入问题后无法完成发送操作。我尝试了以下代码但未成功,请问该如何实现该功能?
尝试的代码:
document.querySelector('cib-serp').shadowRoot.querySelector('#cib-action-bar-main').shadowRoot.querySelector('#searchbox').value="Hello world"; document.querySelector('cib-serp').shadowRoot.querySelector('#cib-action-bar-main').shadowRoot.querySelector('.button.primary').click();
问题原因
直接设置value属性不会触发输入框的input或change事件,Bing Chat的前端逻辑依赖这些事件来启用发送按钮、识别输入内容;另外,页面结构可能更新导致Shadow DOM选择器失效。
解决步骤
- 触发输入事件:设置输入框值后,手动触发
input事件,让页面感知到内容变化 - 延迟点击发送:等待页面完成状态更新后,再执行发送按钮的点击操作
修正后的代码
// 定位搜索输入框 const searchBox = document.querySelector('cib-serp').shadowRoot.querySelector('#cib-action-bar-main').shadowRoot.querySelector('#searchbox'); // 设置输入内容 searchBox.value = "Hello world"; // 触发input事件,通知页面内容已更新 searchBox.dispatchEvent(new Event('input', { bubbles: true })); // 延迟点击发送按钮,确保页面完成状态同步 setTimeout(() => { const sendButton = document.querySelector('cib-serp').shadowRoot.querySelector('#cib-action-bar-main').shadowRoot.querySelector('.button.primary'); if (sendButton) sendButton.click(); }, 500);
额外说明
- 若后续页面结构更新导致选择器失效,可通过浏览器开发者工具重新定位元素的Shadow DOM路径
- Bing Chat存在反自动化检测机制,该实现可能随平台版本更新被限制
内容的提问来源于stack exchange,提问作者Chao Qin
相关产品推荐
相关产品推荐

