Skip to content

Instantly share code, notes, and snippets.

@kool79
Created October 11, 2018 02:56
Show Gist options
  • Save kool79/3c51849b098788f9036b78a0a7966e22 to your computer and use it in GitHub Desktop.
Save kool79/3c51849b098788f9036b78a0a7966e22 to your computer and use it in GitHub Desktop.
----------------------------------------------------------------------------
java-client tries to detect id element isDisplayed() with atom execution:
----------------------------------------------------------------------------
2018-10-11 05:26:50:938 - [HTTP] --> POST /wd/hub/session/43c81083-c3a6-4def-9bab-91f046ff21b0/execute/sync
2018-10-11 05:26:50:938 - [HTTP] {"script":"return (function(){return function(){var k=this;function l(a){return void 0!==a}function m(a){return\"string\"==typeof a}function aa(a,b){a=a.split(\".\");var c=k;a[0]in c||!c.execScript||c.execScript(\"var \"+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&l(b)?c[d]=b:c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}}\nfunction ba(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}function ca(
2018-10-11 05:26:50:940 - [debug] [W3C] Calling AppiumDriver.execute() with args: ["return (function(){return function(){var k=this;function l(a){return void 0!==a}function m(a){return\"string\"==typeof a}function aa(a,b){a=a.split(\".\");var c=k;a[0]in c||!c.execScript||c.execScript(\"var \"+a[0]);for(var d;a.length&&(d=a.shift());)!a.length&&l(b)?c[d]=b:c[d]&&c[d]!==Object.prototype[d]?c=c[d]:c=c[d]={}}\nfunction ba(a){var b=typeof a;if(\"object\"==b)if(a){if(a instanceof Array)return\"array\";if(a instanceof Object)return b;var c=Object.prototype.toString.call(a);if(\"[object Window]\"==c)return\"object\";if(\"[object Array]\"==c||\"number\"==typeof a.length&&\"undefined\"!=typeof a.splice&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"splice\"))return\"array\";if(\"[object Function]\"==c||\"undefined\"!=typeof a.call&&\"undefined\"!=typeof a.propertyIsEnumerable&&!a.propertyIsEnumerable(\"call\"))return\"function\"}else return\"null\";\nelse if(\"function\"==b&&\"undefined\"==typeof a.call)return\"object\";return b}function ca(a,b,c){return a.call.apply(a.b...
2018-10-11 05:26:50:941 - [debug] [XCUITest] Executing command 'execute'
2018-10-11 05:26:50:943 - [debug] [RemoteDebugger] Executing 'execute_script' atom in default context
2018-10-11 05:26:50:944 - [debug] [RemoteDebugger] Garbage collecting with 5000ms timeout
2018-10-11 05:26:50:944 - [debug] [RemoteDebugger] Sending '_rpc_forwardSocketData:' message to remote debugger
2018-10-11 05:26:50:949 - [debug] [RemoteDebugger] Found data handler for response
2018-10-11 05:26:50:949 - [debug] [RemoteDebugger] Received data response from socket send: '{}'
2018-10-11 05:26:50:950 - [debug] [RemoteDebugger] Original command: garbageCollect
2018-10-11 05:26:50:950 - [debug] [RemoteDebugger] Garbage collection successful
2018-10-11 05:26:50:950 - [debug] [RemoteDebugger] Sending javascript command (function(){return function(){var e=this;
2018-10-11 05:26:50:950 - [debug] [RemoteDebugger] funct...
2018-10-11 05:26:50:951 - [debug] [RemoteDebugger] Sending '_rpc_forwardSocketData:' message to remote debugger
2018-10-11 05:26:50:961 - [debug] [RemoteDebugger] Found data handler for response
2018-10-11 05:26:50:961 - [debug] [RemoteDebugger] Received data response from socket send: '{"status":13,"value":{"message":"Argument to is...'
2018-10-11 05:26:50:962 - [debug] [RemoteDebugger] Original command: sendJSCommand
2018-10-11 05:26:50:962 - [debug] [MJSONWP] Matched JSONWP error code 13 to UnknownError
2018-10-11 05:26:50:963 - [debug] [W3C] Encountered internal error running command: UnknownError: An unknown server-side error occurred while processing the command. Original error: Argument to isShown must be of type Element
2018-10-11 05:26:50:963 - [debug] [W3C] at errorFromMJSONWPStatusCode (/usr/local/lib/node_modules/appium/node_modules/appium-base-driver/lib/protocol/errors.js:789:10)
2018-10-11 05:26:50:964 - [debug] [W3C] at RemoteDebugger.convertResult (/usr/local/lib/node_modules/appium/node_modules/appium-remote-debugger/lib/remote-debugger.js:656:6)
2018-10-11 05:26:50:964 - [debug] [W3C] at RemoteDebugger.execute$ (/usr/local/lib/node_modules/appium/node_modules/appium-remote-debugger/build/lib/remote-debugger.js:1539:54)
2018-10-11 05:26:50:964 - [debug] [W3C] at tryCatch (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:67:40)
2018-10-11 05:26:50:964 - [debug] [W3C] at GeneratorFunctionPrototype.invoke [as _invoke] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:315:22)
2018-10-11 05:26:50:964 - [debug] [W3C] at GeneratorFunctionPrototype.prototype.(anonymous function) [as next] (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:100:21)
2018-10-11 05:26:50:964 - [debug] [W3C] at GeneratorFunctionPrototype.invoke (/usr/local/lib/node_modules/appium/node_modules/babel-runtime/regenerator/runtime.js:136:37)
2018-10-11 05:26:50:965 - [debug] [W3C] at <anonymous>
2018-10-11 05:26:50:965 - [HTTP] <-- POST /wd/hub/session/43c81083-c3a6-4def-9bab-91f046ff21b0/execute/sync 500 27 ms - 1332
----------------------------------------------------------------------------
Below code for JSONWire /session/xxxx/element/:element-id/displayed:
(appium use build-in atom)
----------------------------------------------------------------------------
2018-10-11 05:30:02:506 - [HTTP] --> GET /wd/hub/session/43c81083-c3a6-4def-9bab-91f046ff21b0/element/5000/displayed
2018-10-11 05:30:02:506 - [HTTP] {}
2018-10-11 05:30:02:507 - [debug] [W3C] Calling AppiumDriver.elementDisplayed() with args: ["5000","43c81083-c3a6-4def-9bab-91f046ff21b0"]
2018-10-11 05:30:02:507 - [debug] [XCUITest] Executing command 'elementDisplayed'
2018-10-11 05:30:02:508 - [debug] [RemoteDebugger] Executing 'is_displayed' atom in default context
2018-10-11 05:30:02:508 - [debug] [RemoteDebugger] Garbage collecting with 5000ms timeout
2018-10-11 05:30:02:509 - [debug] [RemoteDebugger] Sending '_rpc_forwardSocketData:' message to remote debugger
2018-10-11 05:30:02:516 - [debug] [RemoteDebugger] Found data handler for response
2018-10-11 05:30:02:516 - [debug] [RemoteDebugger] Received data response from socket send: '{}'
2018-10-11 05:30:02:516 - [debug] [RemoteDebugger] Original command: garbageCollect
2018-10-11 05:30:02:516 - [debug] [RemoteDebugger] Garbage collection successful
2018-10-11 05:30:02:517 - [debug] [RemoteDebugger] Sending javascript command (function(){return function(){var h,l=this;func...
2018-10-11 05:30:02:517 - [debug] [RemoteDebugger] Sending '_rpc_forwardSocketData:' message to remote debugger
2018-10-11 05:30:02:527 - [debug] [RemoteDebugger] Found data handler for response
2018-10-11 05:30:02:527 - [debug] [RemoteDebugger] Received data response from socket send: '{"status":0,"value":true}'
2018-10-11 05:30:02:527 - [debug] [RemoteDebugger] Original command: sendJSCommand
2018-10-11 05:30:02:527 - [debug] [RemoteDebugger] Received result for atom 'is_displayed' execution: true
2018-10-11 05:30:02:528 - [debug] [W3C] Responding to client with driver.elementDisplayed() result: true
2018-10-11 05:30:02:528 - [HTTP] <-- GET /wd/hub/session/43c81083-c3a6-4def-9bab-91f046ff21b0/element/5000/displayed 200 22 ms - 14
2018-10-11 05:30:02:528 - [HTTP]
----------------------------------------------------------------------------
Log below is just for reference:
wd.executeScript("return arguments[0]", title) // title IS web-element
Here we can see that 'title' is encoded with json with 2 fields:
{"ELEMENT":"5000","element-6066-11e4-a52e-4f735466cecf":"5000"}
But for atom execution selenium java sends only 1 field (see selenium java sources):
{"element-6066-11e4-a52e-4f735466cecf":"5000"}
----------------------------------------------------------------------------
2018-10-11 05:35:12:588 - [HTTP] --> POST /wd/hub/session/24e36bc8-e1b6-4e2d-a3c5-697711ea64c6/execute/sync
2018-10-11 05:35:12:588 - [HTTP] {"script":"return arguments[0]","args":[{"ELEMENT":"5000","element-6066-11e4-a52e-4f735466cecf":"5000"}]}
2018-10-11 05:35:12:589 - [debug] [W3C] Calling AppiumDriver.execute() with args: ["return arguments[0]",[{"ELEMENT":"5000","element-6066-11e4-a52e-4f735466cecf":"5000"}],"24e36bc8-e1b6-4e2d-a3c5-697711ea64c6"]
2018-10-11 05:35:12:589 - [debug] [XCUITest] Executing command 'execute'
2018-10-11 05:35:12:591 - [debug] [RemoteDebugger] Executing 'execute_script' atom in default context
2018-10-11 05:35:12:591 - [debug] [RemoteDebugger] Garbage collecting with 5000ms timeout
2018-10-11 05:35:12:592 - [debug] [RemoteDebugger] Sending '_rpc_forwardSocketData:' message to remote debugger
2018-10-11 05:35:12:597 - [debug] [RemoteDebugger] Found data handler for response
2018-10-11 05:35:12:597 - [debug] [RemoteDebugger] Received data response from socket send: '{}'
2018-10-11 05:35:12:597 - [debug] [RemoteDebugger] Original command: garbageCollect
2018-10-11 05:35:12:597 - [debug] [RemoteDebugger] Garbage collection successful
2018-10-11 05:35:12:598 - [debug] [RemoteDebugger] Sending javascript command (function(){return function(){var e=this;
2018-10-11 05:35:12:598 - [debug] [RemoteDebugger] funct...
2018-10-11 05:35:12:598 - [debug] [RemoteDebugger] Sending '_rpc_forwardSocketData:' message to remote debugger
2018-10-11 05:35:12:602 - [debug] [RemoteDebugger] Found data handler for response
2018-10-11 05:35:12:602 - [debug] [RemoteDebugger] Received data response from socket send: '{"status":0,"value":{"ELEMENT":":wdc:1539225300...'
2018-10-11 05:35:12:602 - [debug] [RemoteDebugger] Original command: sendJSCommand
2018-10-11 05:35:12:603 - [debug] [RemoteDebugger] Received result for atom 'execute_script' execution: {"ELEMENT":":wdc:1539225300335"}
2018-10-11 05:35:12:604 - [debug] [W3C] Responding to client with driver.execute() result: {"element-6066-11e4-a52e-4f735466cecf":"5001"}
2018-10-11 05:35:12:604 - [HTTP] <-- POST /wd/hub/session/24e36bc8-e1b6-4e2d-a3c5-697711ea64c6/execute/sync 200 16 ms - 56
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment