Javascript 无法在WhatsApp web中以编程方式单击元素
为什么不能使用JavaScriptJavascript 无法在WhatsApp web中以编程方式单击元素,javascript,automation,webdriver,browser-automation,katalon-recorder,Javascript,Automation,Webdriver,Browser Automation,Katalon Recorder,为什么不能使用JavaScript单击WhatsApp web()上的任何元素。单击()方法?我正在采取的步骤如下所述: 假设二维码验证已完成,请访问 找到显示search或start new chat(搜索或开始新聊天)的搜索栏,这是一个输入元素,并触发。在其上单击() 我能够找到搜索输入字段,因为它有一个唯一的标题值search或start new chat,但当我尝试在Chrome的DevTools控制台中单击它时,什么也没有发生 首先我想我可能是点击了错误的元素。当然,我在Chrome上
单击WhatsApp web()上的任何元素。单击()
方法?我正在采取的步骤如下所述:
。在其上单击()
document.evaluate()
。事实证明,它是由querySelectorAll
捕获的同一个输入元素
在浏览器控制台中,我运行以下代码:
let xPath = "(.//*[normalize-space(text()) and normalize-space(.)='Search or start new chat'])[1]/following::input[1]";
let result = document.evaluate(xPath, document);
let searchBox = result.iterateNext();
searchBox.click();
那么,你知道为什么
.click()
不能在WhatsApp网站上工作吗?我还想知道Katalon有什么不同之处——允许它点击所需的元素。我可以在无头浏览器中执行此操作吗?因此解决方案是通过js和新事件()触发事件。
要使其工作,您需要先触发焦点事件,然后触发单击事件
let xPath = "(.//*[normalize-space(text()) and normalize-space(.)='Buscar o empezar un chat nuevo'])[1]/following::input[1]";
let result = document.evaluate(xPath, document);
let searchBox = result.iterateNext();
var eventFocus = new Event('focus');
var eventClick = new Event('click');
searchBox.dispatchEvent(eventFocus);
searchBox.dispatchEvent(eventClick);
此外,我还必须将搜索或开始新的聊天
更改为西班牙语,这是我的默认语言Buscar o empezar un chat nuevo
。因此,您可以考虑改进代码。
希望这有帮助:)你能添加你试图使用的代码吗?@GerardoBLANCO问题用代码更新。看起来
searchBox
是空的不是在我的情况下:你期望发生什么?在你的控制台上运行代码,然后alt+tab
到你的窗口执行上面的脚本后你能看到闪烁的光标吗?是的,如果您愿意,我们可以通过discord进行连接。我非常乐意帮助你你得到答案了吗@devahishjaiswal?如果您能与我们分享,我将不胜感激。我可以专注于搜索框,但WhatsApp没有响应通过控制台键入的输入。@AbhinavSuthar我最终使用了Selenium,并在过程中节省了很多时间:)如果您正在寻找基于JavaScript的解决方案,请查看Puppeter。