触发keydown / up /按whatsapp web界面

时间:2018-01-15 19:35:37

标签: javascript jquery

我公司的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事件但没有运气)。见附件图片。enter image description here

2 个答案:

答案 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>