Jump to content

Search the Community

Showing results for tags 'websocket javascript'.

  • Search By Tags

    Type tags separated by commas.
  • Search By Author

Content Type


Forums

  • General
    • Announcements and Site News
    • Administration
  • AutoIt v3
    • AutoIt Help and Support
    • AutoIt Technical Discussion
    • AutoIt Example Scripts
  • Scripting and Development
    • Developer General Discussion
    • Language Specific Discussion
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • AutoIt Team
    • Beta
    • MVP
  • AutoIt
    • Automation
    • Databases and web connections
    • Data compression
    • Encryption and hash
    • Games
    • GUI Additions
    • Hardware
    • Information gathering
    • Internet protocol suite
    • Maths
    • Media
    • PDF
    • Security
    • Social Media and other Website API
    • Windows
  • Scripting and Development
  • IT Administration
    • Operating System Deployment
    • Windows Client
    • Windows Server
    • Office

Categories

  • Forum FAQ
  • AutoIt

Calendars

  • Community Calendar

Find results in...

Find results that contain...


Date Created

  • Start

    End


Last Updated

  • Start

    End


Filter by number of...

Joined

  • Start

    End


Group


Member Title


Location


WWW


Interests

Found 1 result

  1. I am trying to reveal more information (to integrate in IUIAutomation and UIAWrappers) from any browser like Chrome, Firefox, Safari, IE by 1. injecting piece of javascript with websocket 2. After communication is there do communication with websocket and eval(<jscode>) to get more information from HTML page to do testautomation Stuff works well with http websites / ws and localhost but not with https and wss most likely due to handshakestuff of websocket and certificate not there Maybe some people can direct me further on websocket in JavaScript talking with a server in AutoIT Steps so far 0. Reading stuff like https://developer.mozilla.org/en-US/docs/Web/API/WebSockets_API/Writing_WebSocket_servers and other websocket stuff on google For AutoIT I could not find a finished WebSocket Server 1. With IUIAutomation 2. Type javascript/bookmarklet into addressbar with websocket js code 3. Start Autoit TCP listener (probably not advanced enought to deal with whole websocket protocol) 4. Type javascript (shift+alt+t) to start the websocket javascript 5. connect / sendmessage / disconnect Example code (try once when you are in to press shift alt t) that triggers at least te concept of connecting/disconnecting a. run program that types stuff for you in addressbar b. shift+alt+t will trigger the step to type javascript:testWebSocket();void(0); in addressbar (otherwise you can do that by hand) #include <MsgBoxConstants.au3> #include <string.au3> HotKeySet("+!t", "testIt") ; Shift-Alt-t local $jsCode="javascript:var wsUri = " & """" & "wss://localhost:65534/" & """" $jsCode = $jsCode & ";function testWebSocket() {websocket = new WebSocket(wsUri);" $jsCode = $jsCode & "websocket.onopen = function(evt) {onOpen(evt)};" $jsCode = $jsCode & "websocket.onclose = function(evt) {onClose(evt)};" $jsCode = $jsCode & "websocket.onmessage = function(evt) { onMessage(evt) };" $jsCode = $jsCode & "websocket.onerror = function(evt) { onError(evt) };}" $jsCode = $jsCode & "function onOpen(evt) { alert(" & """" & "CONNECTED" & """" &");} " $jsCode = $jsCode & "function onClose(evt) { alert(" & """" & "DISCONNECTED" & """" &");} " $jsCode = $jsCode & "function onMessage(evt) { alert(" & """" & "Message" & """" &" + evt.data);} " $jsCode = $jsCode & "function onError(evt) { alert(" & """" & "ERROR:" & """" &" + evt.data); } " $jsCode = $jsCode & ";void(0);" ;~ $jsCode=stringreplace($jsCode,"{","\{") ;~ *** Standard code Flexible *** #include "UIAWrappers.au3" AutoItSetOption("MustDeclareVars", 1) Local $oChrome=_UIA_getObjectByFindAll($UIA_oDesktop, "Title:=.*Google Chrome;controltype:=UIA_WindowControlTypeId;class:=Chrome_WidgetWin_1", $treescope_children) Local $oAddressBar=_UIA_getObjectByFindAll($oChrome, "title:=Adres.*;ControlType:=UIA_EditControlTypeId", $treescope_subtree) _UIA_Action($oChrome,"setfocus") ;~ _UIA_action($oAddressBar,"highlight") sleep(500) _UIA_Action($oAddressBar,"click") sleep(500) _UIA_action($oAddressBar,"setvalue", $jsCode ) sleep(500) _UIA_action($oAddressBar,"sendkeys", "{ENTER}") sleep(500) consolewrite($jsCode & @CRLF) ; I am the server, start me first! (Start in second the TCPConnect example script). ; javascript:var wsUri = "wss://127.0.0.1:65534/";function testWebSocket() {websocket = new WebSocket(wsUri);websocket.onopen = function(evt) {onOpen(evt)};websocket.onclose = function(evt) {onClose(evt)}; websocket.onmessage = function(evt) { onMessage(evt) };websocket.onerror = function(evt) { onError(evt) };} function onOpen(evt) { alert("CONNECTED");} function onClose(evt) { alert("DISCONNECTED");} function onMessage(evt) { alert("Message" + evt.data);} function onError(evt) { alert("ERROR:" + evt.data); } ;void(0); ;~ var ws = new WebSocket('wss://localhost:15449/', { ;~ protocolVersion: 8, ;~ origin: 'https://localhost:15449', ;~ rejectUnauthorized: false ;~ }); Example() func testIt() _UIA_action($oAddressBar,"setvalue","javascript:testWebSocket();void(0);" ) _UIA_action($oAddressBar,"sendkeys", "{ENTER}") EndFunc Func Example() TCPStartup() ; Start the TCP service. ; Register OnAutoItExit to be called when the script is closed. OnAutoItExitRegister("OnAutoItExit") ; Assign Local variables the loopback IP Address and the Port. Local $sIPAddress = "127.0.0.1" ; This IP Address only works for testing on your own computer. Local $iPort = 65534 ; Port used for the connection. ; Bind to the IP Address and Port specified with a maximum of 100 pending connexions ;(Take a look at the example of this function for further details). Local $iListenSocket = TCPListen($sIPAddress, $iPort, 100) Local $iError = 0 ; If an error occurred display the error code and return False. If @error Then ; Someone is probably already listening on this IP Address and Port (script already running?). $iError = @error MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "Could not listen, Error code: " & $iError) Return False EndIf ; Assign Local variable to be used by Listening and Client sockets. Local $iSocket = 0 Do ; Wait for someone to connect (Unlimited). ; Accept incomming connexions if present (Socket to close when finished; one socket per client). $iSocket = TCPAccept($iListenSocket) ; If an error occurred display the error code and return False. If @error Then $iError = @error MsgBox(BitOR($MB_SYSTEMMODAL, $MB_ICONHAND), "", "Could not accept the incoming connection, Error code: " & $iError) Return False EndIf Until $iSocket <> -1 ;if different from -1 a client is connected. ; Assign a Local variable the data received. Local $sReceived = TCPRecv($iSocket, 2048) ;we're waiting for the string "tata" OR "toto" (example script TCPRecv): 4 bytes length. consolewrite("Received:" & $sReceived & @CRLF) consolewrite("Received:" & _hextostring($sReceived)) TCPSend($iSocket, "We could send stuff like: document.innerHTML") sleep(5000) ; Close the Listening socket to allow afterward binds. TCPCloseSocket($iListenSocket) MsgBox($MB_SYSTEMMODAL, "", "Client Connected.") ; Close the socket. TCPCloseSocket($iSocket) EndFunc ;==>Example Func OnAutoItExit() TCPShutdown() ; Close the TCP service. EndFunc ;==>OnAutoItExit
×
×
  • Create New...