我公司的ERP工作到今天还不错,但是whatsapp在他们的网页界面上做了一些改变,破坏了我的JS代码。如果您打开web.whatsapp.com,您将看到可以在那里发送消息。
我有一个自动脚本,用于搜索特定用户(与我公司有债务),并在whatsapp中向他们发送消息。我经常这样做:
janela = window.open("https://web.whatsapp.com");
页面加载后,我的系统使用这个非常简单的代码模拟SEARCH图标中的点击:
evt_temp = document.createEvent("MouseEvents");
evt_temp.initEvent("mousedown",true,false);
$(janela.window.document).find("[data-icon=\"search\"]").get(0).dispatchEvent(evt_temp);
之后,我使用以下代码设置输出元素的值:
$(janela.window.document).find("#input-chatlist-search").val("Contact Name");
在今天之前,当我执行上面的代码时,一切都很完美。现在,当我执行上面的所有代码时,LOOKS工作正常(请参阅下面的打印屏幕)但是由于某种原因whatsapp没有触发搜索(我已经尝试在输入上触发keydown / up / press事件但没有运气)。见附件图片。
答案 0 :(得分:0)
这里的问题相同。
我使用NWJS和VBScript解决了。
我是怎么做到的:
1)我为NWJS写了一个小应用程序(html),iframe为https://web.whatsapp.com/
2)使用javascript
专注于wsp搜索文本输入3)使用NWJS api,运行VBScript以粘贴联系人姓名
有关VBScript的更多信息
How execute a combination key on node-webkit like c# sendkeys
如果您需要更多帮助或代码,请询问。
最好的问候
答案 1 :(得分:0)
基本上NW JS是Chrome,但具有NODE-JS功能。这意味着它允许您在系统上执行命令,或者在HD上读/写文件。
1)您必须下载NWJS(https://nwjs.io)
2)解压缩zip文件
3)在包含nw.exe的文件夹中创建一个名为“package.json”的文件
4)将其添加到该文件:(应用程序的名称,版本和条目文件)
{
"name": "nw-demo",
"version": "0.0.1",
"main": "index.html"
}
5)现在你必须编写“index.html”并在你的APP中显示html
6)在与nw.exe相同的文件夹中创建一个名为“paste.vbs”的小VBscript。此文件仅模拟ctrl + v convination,以粘贴剪贴板的内容。
set shell = CreateObject("WScript.Shell")
WScript.Sleep 10
shell.SendKeys "^V"
7)运行nw.exe(带有此选项)
C:\nwjs> nw.exe --no-sandbox
这是我的index.html文件
<script>
//NW gui utils
var gui = require('nw.gui');
</script>
<!DOCTYPE html>
<html>
<head>
<title>WSP Web</title>
</head>
<body>
<input type="text" id="t1"/>
<button onclick="f1()">RUN</button>
<iframe id="wsp1" src="https://web.whatsapp.com" width=100% height=700px nwdisable nwfaketop></iframe>
</body>
<script>
//Function to validate the OS and what command need to be used
function getCommandLine() {
switch (process.platform) {
case 'darwin' : return 'open';
case 'win32' : return 'start';
case 'win64' : return 'start';
default : return 'xdg-open';
}
}
//Function that call the VBScrip
function Paste(){
var sys = require('util');
var exec = require('child_process').exec;
//Run the VBScript
exec(getCommandLine() + ' ' + "paste.vbs");
}
//Main Function
function f1(){
var iframe= document.getElementById("wsp1").contentWindow;
//Focus the text input
var evt1 = new CustomEvent('focus', {'view': window,'bubbles': true,'cancelable': true});
iframe.document.getElementById("input-chatlist-search").dispatchEvent(evt1);
//Put the name of your contact in the computer clipboard (to be pasted with ctrl+v)
var clipboard = gui.Clipboard.get();
clipboard.set("your contact name", 'text');
//paste the clipboard content using the VBscript
Paste();
}
</script>
</html>