appium-novawindows2-driver 0.1.1 → 0.1.2
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powershell.d.ts","sourceRoot":"","sources":["../../../lib/commands/powershell.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAY9C,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,
|
|
1
|
+
{"version":3,"file":"powershell.d.ts","sourceRoot":"","sources":["../../../lib/commands/powershell.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,WAAW,CAAC;AAY9C,wBAAsB,sBAAsB,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA8EnF;AAED,wBAAsB,6BAA6B,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CAyE7G;AAED,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,iBAAiB,EAAE,OAAO,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC,CA8CrG;AAED,wBAAsB,0BAA0B,CAAC,IAAI,EAAE,iBAAiB,GAAG,OAAO,CAAC,IAAI,CAAC,CA6BvF"}
|
|
@@ -15,6 +15,7 @@ const INIT_ROOT_ELEMENT = /* ps1 */ `$rootElement = [AutomationElement]::RootEle
|
|
|
15
15
|
const NULL_ROOT_ELEMENT = /* ps1 */ `$rootElement = $null`;
|
|
16
16
|
const INIT_ELEMENT_TABLE = /* ps1 */ `$elementTable = New-Object System.Collections.Generic.Dictionary[[string]\`,[AutomationElement]]`;
|
|
17
17
|
async function startPowerShellSession() {
|
|
18
|
+
this.log.debug('Starting new PowerShell session...');
|
|
18
19
|
const powerShell = (0, node_child_process_1.spawn)('powershell.exe', ['-NoExit', '-Command', '-']);
|
|
19
20
|
powerShell.stdout.setEncoding('utf8');
|
|
20
21
|
powerShell.stdout.setEncoding('utf8');
|
|
@@ -142,6 +143,7 @@ async function sendIsolatedPowerShellCommand(command) {
|
|
|
142
143
|
}
|
|
143
144
|
async function sendPowerShellCommand(command) {
|
|
144
145
|
const magicNumber = 0xF2EE;
|
|
146
|
+
// this.log.debug(`Sending PowerShell command: ${command.substring(0, 50)}...`);
|
|
145
147
|
if (!this.powerShell) {
|
|
146
148
|
this.log.warn('PowerShell session not running. It was either closed or has crashed. Attempting to start a new session...');
|
|
147
149
|
await this.startPowerShellSession();
|
|
@@ -167,6 +169,7 @@ async function sendPowerShellCommand(command) {
|
|
|
167
169
|
reject(new base_driver_1.errors.UnknownError(this.powerShellStdErr));
|
|
168
170
|
}
|
|
169
171
|
else {
|
|
172
|
+
// this.log.debug(`Received magic char, resolving command.`);
|
|
170
173
|
resolve(this.powerShellStdOut.replace(`${magicChar}`, '').trim());
|
|
171
174
|
}
|
|
172
175
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"powershell.js","sourceRoot":"","sources":["../../../lib/commands/powershell.ts"],"names":[],"mappings":";;AAaA,
|
|
1
|
+
{"version":3,"file":"powershell.js","sourceRoot":"","sources":["../../../lib/commands/powershell.ts"],"names":[],"mappings":"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"}
|
|
@@ -12,6 +12,7 @@ const NULL_ROOT_ELEMENT = /* ps1 */ `$rootElement = $null`;
|
|
|
12
12
|
const INIT_ELEMENT_TABLE = /* ps1 */ `$elementTable = New-Object System.Collections.Generic.Dictionary[[string]\`,[AutomationElement]]`;
|
|
13
13
|
|
|
14
14
|
export async function startPowerShellSession(this: NovaWindowsDriver): Promise<void> {
|
|
15
|
+
this.log.debug('Starting new PowerShell session...');
|
|
15
16
|
const powerShell = spawn('powershell.exe', ['-NoExit', '-Command', '-']);
|
|
16
17
|
powerShell.stdout.setEncoding('utf8');
|
|
17
18
|
powerShell.stdout.setEncoding('utf8');
|
|
@@ -167,6 +168,7 @@ export async function sendIsolatedPowerShellCommand(this: NovaWindowsDriver, com
|
|
|
167
168
|
|
|
168
169
|
export async function sendPowerShellCommand(this: NovaWindowsDriver, command: string): Promise<string> {
|
|
169
170
|
const magicNumber = 0xF2EE;
|
|
171
|
+
// this.log.debug(`Sending PowerShell command: ${command.substring(0, 50)}...`);
|
|
170
172
|
|
|
171
173
|
if (!this.powerShell) {
|
|
172
174
|
this.log.warn('PowerShell session not running. It was either closed or has crashed. Attempting to start a new session...');
|
|
@@ -197,6 +199,7 @@ export async function sendPowerShellCommand(this: NovaWindowsDriver, command: st
|
|
|
197
199
|
if (this.powerShellStdErr) {
|
|
198
200
|
reject(new errors.UnknownError(this.powerShellStdErr));
|
|
199
201
|
} else {
|
|
202
|
+
// this.log.debug(`Received magic char, resolving command.`);
|
|
200
203
|
resolve(this.powerShellStdOut.replace(`${magicChar}`, '').trim());
|
|
201
204
|
}
|
|
202
205
|
}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "appium-novawindows2-driver",
|
|
3
|
-
"version": "0.1.
|
|
3
|
+
"version": "0.1.2",
|
|
4
4
|
"description": "Appium driver for Windows",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"appium",
|
|
@@ -37,7 +37,7 @@
|
|
|
37
37
|
},
|
|
38
38
|
"appium": {
|
|
39
39
|
"driverName": "novawindows2",
|
|
40
|
-
"automationName": "
|
|
40
|
+
"automationName": "NovaWindows2",
|
|
41
41
|
"platformNames": [
|
|
42
42
|
"Windows"
|
|
43
43
|
],
|
|
@@ -58,4 +58,4 @@
|
|
|
58
58
|
"typescript-eslint": "^8.46.1",
|
|
59
59
|
"webdriverio": "^9.21.0"
|
|
60
60
|
}
|
|
61
|
-
}
|
|
61
|
+
}
|
package/temp_log.txt
ADDED
|
@@ -0,0 +1,215 @@
|
|
|
1
|
+
[38;5;112m[Appium][0m Welcome to Appium v3.1.2
|
|
2
|
+
[38;5;112m[Appium][0m Non-default server args:
|
|
3
|
+
[38;5;112m[Appium][0m { relaxedSecurityEnabled: [33mtrue[39m }
|
|
4
|
+
[38;5;112m[Appium][0m Enabling relaxed security. All insecure features will be enabled unless explicitly disabled by --deny-insecure
|
|
5
|
+
[38;5;112m[Appium][0m The autodetected Appium home path: D:\SecureAge\appium-novawindows-driver
|
|
6
|
+
[38;5;112m[Appium][0m Attempting to load driver novawindows...
|
|
7
|
+
[38;5;112m[Appium][0m Requiring driver at D:\SecureAge\appium-novawindows-driver\build\lib\driver.js
|
|
8
|
+
[38;5;112m[Appium][0m NovaWindowsDriver has been successfully loaded in 0.296s
|
|
9
|
+
[38;5;112m[Appium][0m Appium REST http interface listener started on http://0.0.0.0:4723
|
|
10
|
+
[38;5;112m[Appium][0m You can provide the following URLs in your client code to connect to this server:
|
|
11
|
+
http://10.8.0.2:4723/
|
|
12
|
+
http://192.168.1.3:4723/
|
|
13
|
+
http://192.168.183.1:4723/
|
|
14
|
+
http://192.168.196.1:4723/
|
|
15
|
+
http://127.0.0.1:4723/ (only accessible from the same host)
|
|
16
|
+
[38;5;112m[Appium][0m Available drivers:
|
|
17
|
+
[38;5;112m[Appium][0m - novawindows@1.1.0 (automationName 'NovaWindows')
|
|
18
|
+
[38;5;112m[Appium][0m No plugins have been installed. Use the "appium plugin" command to install the one(s) you want to use.
|
|
19
|
+
[38;5;86m[HTTP][0m [37m-->[39m [37mPOST[39m [37m/session[39m [90m{"capabilities":{"alwaysMatch":{"appium:automationName":"NovaWindows","platformName":"Windows","appium:app":"Root","appium:newCommandTimeout":60},"firstMatch":[{}]}}[39m
|
|
20
|
+
[38;5;136m[AppiumDriver@f617][0m Calling AppiumDriver.createSession() with args: [{"alwaysMatch":{"appium:automationName":"NovaWindows","platformName":"Windows","appium:app":"Root","appium:newCommandTimeout":60},"firstMatch":[{}]},{"alwaysMatch":{"appium:automationName":"NovaWindows","platformName":"Windows","appium:app":"Root","appium:newCommandTimeout":60},"firstMatch":[{}]},{"alwaysMatch":{"appium:automationName":"NovaWindows","platformName":"Windows","appium:app":"Root","appium:newCommandTimeout":60},"firstMatch":[{}]}]
|
|
21
|
+
[38;5;136m[AppiumDriver@f617][0m Event 'newSessionRequested' logged at 1766112290273 (09:44:50 GMT+0700 (Indochina Time))
|
|
22
|
+
[38;5;112m[Appium][0m Attempting to find matching driver for automationName 'NovaWindows' and platformName 'Windows'
|
|
23
|
+
[38;5;112m[Appium][0m The 'novawindows' driver was installed and matched caps.
|
|
24
|
+
[38;5;112m[Appium][0m Will require it at D:\SecureAge\appium-novawindows-driver
|
|
25
|
+
[38;5;112m[Appium][0m Requiring driver at D:\SecureAge\appium-novawindows-driver\build\lib\driver.js
|
|
26
|
+
[38;5;136m[AppiumDriver@f617][0m Appium v3.1.2 creating new NovaWindowsDriver (v1.1.0) session
|
|
27
|
+
[38;5;136m[AppiumDriver@f617][0m Checking BaseDriver versions for Appium and NovaWindowsDriver
|
|
28
|
+
[38;5;136m[AppiumDriver@f617][0m Appium's BaseDriver version is 10.1.2
|
|
29
|
+
[38;5;136m[AppiumDriver@f617][0m NovaWindowsDriver's BaseDriver version is 10.1.2
|
|
30
|
+
[38;5;136m[AppiumDriver@f617][0m Enabling relaxed security for this session as per the server configuration. All insecure features will be enabled unless explicitly disabled by --deny-insecure
|
|
31
|
+
[38;5;200m[NovaWindowsDriver@e4bb][0m Creating NovaWindows driver session...
|
|
32
|
+
[38;5;200m[NovaWindowsDriver@e4bb][0m
|
|
33
|
+
[38;5;200m[NovaWindowsDriver@e4bb][0m Creating session with W3C capabilities: {
|
|
34
|
+
"alwaysMatch": {
|
|
35
|
+
"platformName": "Windows",
|
|
36
|
+
"appium:automationName": "NovaWindows",
|
|
37
|
+
"appium:app": "Root",
|
|
38
|
+
"appium:newCommandTimeout": 60
|
|
39
|
+
},
|
|
40
|
+
"firstMatch": [
|
|
41
|
+
{}
|
|
42
|
+
]
|
|
43
|
+
}
|
|
44
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Session created with session id: f7b0f250-0acd-4194-aa33-1f6e08092721
|
|
45
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Starting new PowerShell session...
|
|
46
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $OutputEncoding = [Console]::OutputEncoding = [Tex...
|
|
47
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m UTF8 encoding set.
|
|
48
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: Add-Type -AssemblyName UIAutomationClient; Add-Typ...
|
|
49
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Assemblies added.
|
|
50
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: using namespace System.Windows.Automation...
|
|
51
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m UI Automation client namespace used.
|
|
52
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: ($cacheRequest = New-Object System.Windows.Automat...
|
|
53
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Cache request initialized.
|
|
54
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $elementTable = New-Object System.Collections.Gene...
|
|
55
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Element table initialized.
|
|
56
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
57
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Page source function defined.
|
|
58
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
59
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Find children recursively function defined.
|
|
60
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m 'root' specified as app in capabilities. Setting root element to desktop root.
|
|
61
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $rootElement = [AutomationElement]::RootElement...
|
|
62
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Root element set to desktop root.
|
|
63
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Started session f7b0f250-0acd-4194-aa33-1f6e08092721.
|
|
64
|
+
[38;5;178m[f7b0f250][0m[38;5;136m[AppiumDriver@f617][0m New NovaWindowsDriver session created successfully, session f7b0f250-0acd-4194-aa33-1f6e08092721 added to master session list
|
|
65
|
+
[38;5;178m[f7b0f250][0m[38;5;136m[AppiumDriver@f617][0m Event 'newSessionStarted' logged at 1766112291265 (09:44:51 GMT+0700 (Indochina Time))
|
|
66
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Cached the protocol value 'W3C' for the new session f7b0f250-0acd-4194-aa33-1f6e08092721
|
|
67
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Responding to client with driver.createSession() result: {"capabilities":{"platformName":"Windows","automationName":"NovaWindows","app":"Root","newCommandTimeout":60,"shouldCloseApp":true}}
|
|
68
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m<-- POST /session [39m[32m200[39m [90m995 ms - 193[39m [90m[39m
|
|
69
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m-->[39m [37mGET[39m [37m/session/f7b0f250-0acd-4194-aa33-1f6e08092721/window/rect[39m [90m[39m
|
|
70
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Calling AppiumDriver.getWindowRect() with args: ["f7b0f250-0acd-4194-aa33-1f6e08092721"]
|
|
71
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
72
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Responding to client with driver.getWindowRect() result: {"x":0,"y":0,"width":1920,"height":1080}
|
|
73
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m<-- GET /session/f7b0f250-0acd-4194-aa33-1f6e08092721/window/rect [39m[32m200[39m [90m30 ms - 50[39m [90m[39m
|
|
74
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m-->[39m [37mGET[39m [37m/session/f7b0f250-0acd-4194-aa33-1f6e08092721/screenshot[39m [90m[39m
|
|
75
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Calling AppiumDriver.getScreenshot() with args: ["f7b0f250-0acd-4194-aa33-1f6e08092721"]
|
|
76
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
77
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
78
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Responding to client with driver.getScreenshot() result: "iVBORw0KGgoAAAANSUhEUgAAB4AAAAQ4CAYAAADo08FDAAAAAXNSR0IArs4c6QAAAARnQU1BAACxjwv8YQUAAAAJcEhZcwAADsMAAA7DAcdvqGQAAP+lSURBVHhe7P35exzHmeeLzn9wnzv3eaZpameJC7iKIAFuIglwAbhgIUGCAAkQJAWQFEBxFQWRhCiBi0BZArWQogXZpjbIpgVapq02xlKjhxpYnoPDbvicsW+PbY17fLpnepv2zPVz5rn3PI/uPT7vfd7IjKzIiMiszKosoAB8f/g8VRlbRi5VmZWfeiP+xbRp0wgAAAAAAAAAAAAAAAAAAAAAAMDE51/oCQAAAAAAAAAAAAAAAAAAAAAAACYmEMAAAAAAAAAAAAAAAAAAAAAAADBJgAAGAAAAAAAAAAAAAAAAAAAAAIBJAgQwAAAAAAAAAAAAAAAAAAAAAABMEiCAAQAAAAAAAAAAAAAAAAAAAABgkgABDAAAAAAAAAAAAAAAAAAAkAfmzZtHK1asoPLy8lhwHa6rtwcAAFGAAAYAAAAAAAAAAAAAAAAAAEiQBx98MCvxq8NtcFt6+wAAEAYEMAAAAAAAAAAAAAAAAAAAQIIkIX8l3JbePgAAhBFZAD/8yKM5obcHAAAAAAAAAAAAAAAAAAAw2eChm3WJmyvxh4NOUeWxa3RnaIRGR0cdvhiiO68fo8qUXjZ/pJZWUuXSlJE+UdhYUUG9L1+gj65305X96+lM8zp640IHvfTyFdqwscIoD0ChkLMAnjHjUZr56KM0M+W81/MhgAEAAAAAAAAAAAAAAAAAkB0park+lJaYERm60UIpoy0bybfvj/7dQs++97lRPxOff/AsbVEEcLwo4HLq/HCYRofv0LXTjbRyHqcV0cqGTrr2Maf3U2eZXic5ihq6qX9w2L9N90Zo6ONrdKwiORlcpxy34RuNRn6uvPbGdfrF6F360zfPUt+hDXRq52o6tauMLh2uoe/d6KJf/fVvqPe1V416ABQCOQngGalHacni...
|
|
79
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m<-- GET /session/f7b0f250-0acd-4194-aa33-1f6e08092721/screenshot [39m[32m200[39m [90m76 ms - 369084[39m [90m[39m
|
|
80
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m-->[39m [37mPOST[39m [37m/session/f7b0f250-0acd-4194-aa33-1f6e08092721/element[39m [90m{"using":"xpath","value":"//*"}[39m
|
|
81
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Calling AppiumDriver.findElement() with args: ["xpath","//*","f7b0f250-0acd-4194-aa33-1f6e08092721"]
|
|
82
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Valid locator strategies for this request: id, name, xpath, tag name, class name, accessibility id, -windows uiautomation
|
|
83
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
84
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Responding to client with driver.findElement() result: {"ELEMENT":"42.65724","element-6066-11e4-a52e-4f735466cecf":"42.65724"}
|
|
85
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m<-- POST /session/f7b0f250-0acd-4194-aa33-1f6e08092721/element [39m[32m200[39m [90m19 ms - 81[39m [90m[39m
|
|
86
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m-->[39m [37mGET[39m [37m/session/f7b0f250-0acd-4194-aa33-1f6e08092721/window[39m [90m[39m
|
|
87
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Calling AppiumDriver.getWindowHandle() with args: ["f7b0f250-0acd-4194-aa33-1f6e08092721"]
|
|
88
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
89
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Responding to client with driver.getWindowHandle() result: "0x0001000c"
|
|
90
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m<-- GET /session/f7b0f250-0acd-4194-aa33-1f6e08092721/window [39m[32m200[39m [90m5 ms - 22[39m [90m[39m
|
|
91
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m-->[39m [37mPOST[39m [37m/session/f7b0f250-0acd-4194-aa33-1f6e08092721/execute/sync[39m [90m{"script":"powerShell","args":[{"command":"Get-Process"}]}[39m
|
|
92
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Calling AppiumDriver.execute() with args: ["powerShell",[{"command":"Get-Process"}],"f7b0f250-0acd-4194-aa33-1f6e08092721"]
|
|
93
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
94
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Responding to client with driver.execute() result: "Handles NPM(K) PM(K) WS(K) CPU(s) Id S\r\n I\r\n------- ------ ----- ----- ------ -- -\r\n 203 13 2332 11912 6688 0\r\n 201 12 1780 11280 5232 0\r\n 212 23 358840 447932 16.63 500 1\r\n 431 71 218032 269024 98.91 3460 1\r\n 368 22 11948 61736 5.59 3936 1\r\n 250 28 96892 146620 11.84 4436 1\r\n 277 16 8668 99484 0.50 4920 1\r\n 195 20 27348 115044 0.52 5948 1\r\n 1344 39 319516 367844 154.30 6968 1\r\n 364 52 146716 155092 10.22 8480 1\r\n 1621 125 419504 480524 401.88 8680 1\r\n 274 12 7804 39452 0.16 10036 1\r\n 264 28 117088 154188 4.75 10868 1\r\n 887 70 870540 950560 1,098.69 11360 1\r\n 359 29 ...
|
|
95
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m<-- POST /session/f7b0f250-0acd-4194-aa33-1f6e08092721/execute/sync [39m[32m200[39m [90m104 ms - 10451[39m [90m[39m
|
|
96
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m-->[39m [37mPOST[39m [37m/session/f7b0f250-0acd-4194-aa33-1f6e08092721/execute/sync[39m [90m{"script":"powerShell","args":[{"command":"Get-Process; exit 0"}]}[39m
|
|
97
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Calling AppiumDriver.execute() with args: ["powerShell",[{"command":"Get-Process; exit 0"}],"f7b0f250-0acd-4194-aa33-1f6e08092721"]
|
|
98
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
99
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Encountered internal error running command: UnknownError: PowerShell process exited unexpectedly with code 0
|
|
100
|
+
at ChildProcess.onClose (D:\SecureAge\appium-novawindows-driver\lib\commands\powershell.ts:198:20)
|
|
101
|
+
at ChildProcess.emit (node:events:524:28)
|
|
102
|
+
at maybeClose (node:internal/child_process:1101:16)
|
|
103
|
+
at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
|
|
104
|
+
at Process.callbackTrampoline (node:internal/async_hooks:130:17)
|
|
105
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m<-- POST /session/f7b0f250-0acd-4194-aa33-1f6e08092721/execute/sync [39m[31m500[39m [90m113 ms - 541[39m [90m[39m
|
|
106
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m-->[39m [37mPOST[39m [37m/session/f7b0f250-0acd-4194-aa33-1f6e08092721/execute/sync[39m [90m{"script":"powerShell","args":[{"command":"Get-Process; exit 0"}]}[39m
|
|
107
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Calling AppiumDriver.execute() with args: ["powerShell",[{"command":"Get-Process; exit 0"}],"f7b0f250-0acd-4194-aa33-1f6e08092721"]
|
|
108
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
109
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m PowerShell session not running. It was either closed or has crashed. Attempting to start a new session...
|
|
110
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Starting new PowerShell session...
|
|
111
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $OutputEncoding = [Console]::OutputEncoding = [Tex...
|
|
112
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m UTF8 encoding set.
|
|
113
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: Add-Type -AssemblyName UIAutomationClient; Add-Typ...
|
|
114
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Assemblies added.
|
|
115
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: using namespace System.Windows.Automation...
|
|
116
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m UI Automation client namespace used.
|
|
117
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: ($cacheRequest = New-Object System.Windows.Automat...
|
|
118
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Cache request initialized.
|
|
119
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $elementTable = New-Object System.Collections.Gene...
|
|
120
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Element table initialized.
|
|
121
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
122
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Page source function defined.
|
|
123
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
124
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Find children recursively function defined.
|
|
125
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m 'root' specified as app in capabilities. Setting root element to desktop root.
|
|
126
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $rootElement = [AutomationElement]::RootElement...
|
|
127
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Root element set to desktop root.
|
|
128
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Encountered internal error running command: UnknownError: PowerShell process exited unexpectedly with code 0
|
|
129
|
+
at ChildProcess.onClose (D:\SecureAge\appium-novawindows-driver\lib\commands\powershell.ts:198:20)
|
|
130
|
+
at ChildProcess.emit (node:events:524:28)
|
|
131
|
+
at maybeClose (node:internal/child_process:1101:16)
|
|
132
|
+
at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
|
|
133
|
+
at Process.callbackTrampoline (node:internal/async_hooks:130:17)
|
|
134
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m<-- POST /session/f7b0f250-0acd-4194-aa33-1f6e08092721/execute/sync [39m[31m500[39m [90m1083 ms - 541[39m [90m[39m
|
|
135
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m-->[39m [37mPOST[39m [37m/session/f7b0f250-0acd-4194-aa33-1f6e08092721/execute/sync[39m [90m{"script":"powerShell","args":[{"command":"Get-Process; exit 0"}]}[39m
|
|
136
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Calling AppiumDriver.execute() with args: ["powerShell",[{"command":"Get-Process; exit 0"}],"f7b0f250-0acd-4194-aa33-1f6e08092721"]
|
|
137
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
138
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m PowerShell session not running. It was either closed or has crashed. Attempting to start a new session...
|
|
139
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Starting new PowerShell session...
|
|
140
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $OutputEncoding = [Console]::OutputEncoding = [Tex...
|
|
141
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m UTF8 encoding set.
|
|
142
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: Add-Type -AssemblyName UIAutomationClient; Add-Typ...
|
|
143
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Assemblies added.
|
|
144
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: using namespace System.Windows.Automation...
|
|
145
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m UI Automation client namespace used.
|
|
146
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: ($cacheRequest = New-Object System.Windows.Automat...
|
|
147
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Cache request initialized.
|
|
148
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $elementTable = New-Object System.Collections.Gene...
|
|
149
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Element table initialized.
|
|
150
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
151
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Page source function defined.
|
|
152
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
153
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Find children recursively function defined.
|
|
154
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m 'root' specified as app in capabilities. Setting root element to desktop root.
|
|
155
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $rootElement = [AutomationElement]::RootElement...
|
|
156
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Root element set to desktop root.
|
|
157
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Encountered internal error running command: UnknownError: PowerShell process exited unexpectedly with code 0
|
|
158
|
+
at ChildProcess.onClose (D:\SecureAge\appium-novawindows-driver\lib\commands\powershell.ts:198:20)
|
|
159
|
+
at ChildProcess.emit (node:events:524:28)
|
|
160
|
+
at maybeClose (node:internal/child_process:1101:16)
|
|
161
|
+
at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
|
|
162
|
+
at Process.callbackTrampoline (node:internal/async_hooks:130:17)
|
|
163
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m<-- POST /session/f7b0f250-0acd-4194-aa33-1f6e08092721/execute/sync [39m[31m500[39m [90m1046 ms - 541[39m [90m[39m
|
|
164
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m-->[39m [37mPOST[39m [37m/session/f7b0f250-0acd-4194-aa33-1f6e08092721/execute/sync[39m [90m{"script":"powerShell","args":[{"command":"Get-Process; exit 0"}]}[39m
|
|
165
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Calling AppiumDriver.execute() with args: ["powerShell",[{"command":"Get-Process; exit 0"}],"f7b0f250-0acd-4194-aa33-1f6e08092721"]
|
|
166
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
167
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m PowerShell session not running. It was either closed or has crashed. Attempting to start a new session...
|
|
168
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Starting new PowerShell session...
|
|
169
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $OutputEncoding = [Console]::OutputEncoding = [Tex...
|
|
170
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m UTF8 encoding set.
|
|
171
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: Add-Type -AssemblyName UIAutomationClient; Add-Typ...
|
|
172
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Assemblies added.
|
|
173
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: using namespace System.Windows.Automation...
|
|
174
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m UI Automation client namespace used.
|
|
175
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: ($cacheRequest = New-Object System.Windows.Automat...
|
|
176
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Cache request initialized.
|
|
177
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $elementTable = New-Object System.Collections.Gene...
|
|
178
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Element table initialized.
|
|
179
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
180
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Page source function defined.
|
|
181
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
182
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Find children recursively function defined.
|
|
183
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m 'root' specified as app in capabilities. Setting root element to desktop root.
|
|
184
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $rootElement = [AutomationElement]::RootElement...
|
|
185
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Root element set to desktop root.
|
|
186
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Encountered internal error running command: UnknownError: PowerShell process exited unexpectedly with code 0
|
|
187
|
+
at ChildProcess.onClose (D:\SecureAge\appium-novawindows-driver\lib\commands\powershell.ts:198:20)
|
|
188
|
+
at ChildProcess.emit (node:events:524:28)
|
|
189
|
+
at maybeClose (node:internal/child_process:1101:16)
|
|
190
|
+
at Process.ChildProcess._handle.onexit (node:internal/child_process:304:5)
|
|
191
|
+
at Process.callbackTrampoline (node:internal/async_hooks:130:17)
|
|
192
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m<-- POST /session/f7b0f250-0acd-4194-aa33-1f6e08092721/execute/sync [39m[31m500[39m [90m1097 ms - 541[39m [90m[39m
|
|
193
|
+
[38;5;178m[f7b0f250][0m[38;5;86m[HTTP][0m [37m-->[39m [37mPOST[39m [37m/session/f7b0f250-0acd-4194-aa33-1f6e08092721/element[39m [90m{"using":"xpath","value":"//Button[@Name=\"Start\"]"}[39m
|
|
194
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Calling AppiumDriver.findElement() with args: ["xpath","//Button[@Name=\"Start\"]","f7b0f250-0acd-4194-aa33-1f6e08092721"]
|
|
195
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Valid locator strategies for this request: id, name, xpath, tag name, class name, accessibility id, -windows uiautomation
|
|
196
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
197
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m PowerShell session not running. It was either closed or has crashed. Attempting to start a new session...
|
|
198
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Starting new PowerShell session...
|
|
199
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $OutputEncoding = [Console]::OutputEncoding = [Tex...
|
|
200
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m UTF8 encoding set.
|
|
201
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: Add-Type -AssemblyName UIAutomationClient; Add-Typ...
|
|
202
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Assemblies added.
|
|
203
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: using namespace System.Windows.Automation...
|
|
204
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m UI Automation client namespace used.
|
|
205
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: ($cacheRequest = New-Object System.Windows.Automat...
|
|
206
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Cache request initialized.
|
|
207
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $elementTable = New-Object System.Collections.Gene...
|
|
208
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Element table initialized.
|
|
209
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
210
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Page source function defined.
|
|
211
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: (Invoke-Expression -Command ([Text.Encoding]::UTF8...
|
|
212
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Find children recursively function defined.
|
|
213
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m 'root' specified as app in capabilities. Setting root element to desktop root.
|
|
214
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Sending PowerShell command: $rootElement = [AutomationElement]::RootElement...
|
|
215
|
+
[38;5;178m[f7b0f250][0m[38;5;200m[NovaWindowsDriver@e4bb][0m Root element set to desktop root.
|
package/verify_driver.js
CHANGED
|
@@ -8,7 +8,7 @@ async function main() {
|
|
|
8
8
|
port: 4723,
|
|
9
9
|
path: '/',
|
|
10
10
|
capabilities: {
|
|
11
|
-
"appium:automationName": "
|
|
11
|
+
"appium:automationName": "NovaWindows2",
|
|
12
12
|
"platformName": "Windows",
|
|
13
13
|
"appium:app": "Root", // Using Root to attach to desktop, verify this is supported
|
|
14
14
|
"appium:newCommandTimeout": 60
|
|
@@ -62,6 +62,8 @@ async function main() {
|
|
|
62
62
|
console.log(`Found root element with ID: ${element.elementId}`);
|
|
63
63
|
}
|
|
64
64
|
|
|
65
|
+
|
|
66
|
+
|
|
65
67
|
// 5. Get Window Handle
|
|
66
68
|
console.log('Test 5: Get Window Handle');
|
|
67
69
|
const handle = await client.getWindowHandle();
|
|
@@ -82,6 +84,50 @@ async function main() {
|
|
|
82
84
|
console.log(`Test 7 encountered error as expected (or unexpected): ${e.message}`);
|
|
83
85
|
}
|
|
84
86
|
|
|
87
|
+
// 7.5 Recovery Check
|
|
88
|
+
console.log('Test 7.5: Recovery Check with simple command');
|
|
89
|
+
console.log('Waiting 2 seconds...');
|
|
90
|
+
await new Promise(resolve => setTimeout(resolve, 2000));
|
|
91
|
+
try {
|
|
92
|
+
const output = await client.executeScript('powerShell', [{ command: 'Get-Process | Select-Object -First 1' }]);
|
|
93
|
+
console.log('Test 7.5 passed. Recovery seems to work for simple commands.');
|
|
94
|
+
} catch (e) {
|
|
95
|
+
console.error('Test 7.5 failed:', e.message);
|
|
96
|
+
}
|
|
97
|
+
|
|
98
|
+
// 8. Click on Start button (Safe Locator)
|
|
99
|
+
console.log('Test 8: Click on Start button (Safe Locator)');
|
|
100
|
+
console.log('Waiting 3 seconds before Test 8...');
|
|
101
|
+
await new Promise(resolve => setTimeout(resolve, 3000));
|
|
102
|
+
|
|
103
|
+
// Use direct child path to avoid deep recursion on Root
|
|
104
|
+
let startButton;
|
|
105
|
+
try {
|
|
106
|
+
// Try to find Taskbar by class name (direct child of Root usually)
|
|
107
|
+
// Then find Start button inside it.
|
|
108
|
+
// Note: XPath `//` is recursive. We want direct child.
|
|
109
|
+
// But client.$ calls `xpathToElIdOrIds`.
|
|
110
|
+
// If we use `xpath`, we can force direct children?
|
|
111
|
+
// `/Pane[@ClassName="Shell_TrayWnd"]` is absolute path from Root?
|
|
112
|
+
// No, `xpath-analyzer` treats `/` as absolute from root.
|
|
113
|
+
// Let's try finding Taskbar first using absolute path.
|
|
114
|
+
|
|
115
|
+
// However, client.$ prefixing is tricky if we don't start with /
|
|
116
|
+
// If we start with /, it's absolute.
|
|
117
|
+
|
|
118
|
+
const taskbar = await client.$('/Pane[@ClassName="Shell_TrayWnd"]');
|
|
119
|
+
startButton = await taskbar.$('Button[@Name="Start"]');
|
|
120
|
+
} catch (e) {
|
|
121
|
+
console.log('Safe locator failed: ' + e.message);
|
|
122
|
+
}
|
|
123
|
+
|
|
124
|
+
if (!startButton || startButton.error) {
|
|
125
|
+
console.log('Could not find Start button with safe locator. Skipping click.');
|
|
126
|
+
} else {
|
|
127
|
+
await startButton.click();
|
|
128
|
+
console.log('Clicked Start button (Test 8 passed).');
|
|
129
|
+
}
|
|
130
|
+
|
|
85
131
|
} catch (err) {
|
|
86
132
|
console.error('Test execution failed:', err);
|
|
87
133
|
} finally {
|