android-midscene-automation 1.1.3 → 1.1.4
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.
- package/CHANGELOG.md +6 -0
- package/README.md +6 -0
- package/package.json +1 -1
- package/server/appium-recorder/appium-runner.ts +231 -78
- package/server/appium-recorder/element-tap.test.ts +171 -6
- package/server/appium-recorder/managed-cleanup.test.ts +7 -7
- package/server/appium-recorder/replay-lifecycle.test.ts +4 -4
- package/server/appium-recorder/repository.ts +39 -9
- package/server/appium-recorder/request-timeout.ts +5 -0
- package/server/appium-recorder/routes.ts +38 -15
- package/server/appium-recorder/script-import.test.ts +45 -0
- package/server/appium-recorder/tree-dump.ts +44 -0
- package/server/remote-agents/replay-integration.test.ts +4 -4
- package/src/App.vue +10 -10
- package/src/appium-recorder/AppiumPage.vue +58 -12
- package/src/appium-recorder/RunHistoryDialog.vue +91 -51
- package/src/appium-recorder/api.ts +4 -0
- package/src/appium-recorder/components/FlowStepEditor.vue +51 -9
- package/src/appium-recorder/components/RecordedSteps.vue +1 -0
- package/src/appium-recorder/components/ScriptParameterSettings.vue +44 -10
- package/src/appium-recorder/components/VariableTable.vue +44 -5
- package/src/appium-recorder/tree.ts +1 -0
- package/src/style.css +149 -53
package/src/style.css
CHANGED
|
@@ -1243,10 +1243,11 @@ select {
|
|
|
1243
1243
|
max-height: 260px;
|
|
1244
1244
|
margin: 0;
|
|
1245
1245
|
padding: 12px;
|
|
1246
|
-
border: 1px solid
|
|
1246
|
+
border: 1px solid #3c3c3c;
|
|
1247
1247
|
border-radius: 6px;
|
|
1248
|
-
background: #
|
|
1249
|
-
color: #
|
|
1248
|
+
background: #1e1e1e;
|
|
1249
|
+
color: #d4d4d4;
|
|
1250
|
+
font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
|
|
1250
1251
|
font-size: 12px;
|
|
1251
1252
|
line-height: 1.6;
|
|
1252
1253
|
overflow: auto;
|
|
@@ -1282,23 +1283,14 @@ select {
|
|
|
1282
1283
|
flex: 1 1 auto;
|
|
1283
1284
|
min-height: 0;
|
|
1284
1285
|
overflow: hidden;
|
|
1285
|
-
padding:
|
|
1286
|
-
}
|
|
1287
|
-
|
|
1288
|
-
.appium-replay-dialog > .el-dialog__header {
|
|
1289
|
-
padding: 18px 20px 14px;
|
|
1290
|
-
border-bottom: 1px solid var(--ui-border);
|
|
1291
|
-
}
|
|
1292
|
-
|
|
1293
|
-
.appium-replay-dialog > .el-dialog__footer {
|
|
1294
|
-
padding: 12px 20px 18px;
|
|
1286
|
+
padding: 20px;
|
|
1295
1287
|
}
|
|
1296
1288
|
|
|
1297
1289
|
.appium-replay-dialog .appium-replay-output {
|
|
1298
|
-
border-color: #
|
|
1299
|
-
background: #
|
|
1300
|
-
color: #
|
|
1301
|
-
scrollbar-color: #
|
|
1290
|
+
border-color: #3c3c3c;
|
|
1291
|
+
background: #1e1e1e;
|
|
1292
|
+
color: #d4d4d4;
|
|
1293
|
+
scrollbar-color: #424242 #1e1e1e;
|
|
1302
1294
|
}
|
|
1303
1295
|
|
|
1304
1296
|
.appium-replay-dialog .appium-replay-output::-webkit-scrollbar {
|
|
@@ -1307,13 +1299,22 @@ select {
|
|
|
1307
1299
|
}
|
|
1308
1300
|
|
|
1309
1301
|
.appium-replay-dialog .appium-replay-output::-webkit-scrollbar-track {
|
|
1310
|
-
background: #
|
|
1302
|
+
background: #1e1e1e;
|
|
1311
1303
|
}
|
|
1312
1304
|
|
|
1313
1305
|
.appium-replay-dialog .appium-replay-output::-webkit-scrollbar-thumb {
|
|
1314
|
-
border: 2px solid #
|
|
1306
|
+
border: 2px solid #1e1e1e;
|
|
1315
1307
|
border-radius: 6px;
|
|
1316
|
-
background: #
|
|
1308
|
+
background: #424242;
|
|
1309
|
+
}
|
|
1310
|
+
|
|
1311
|
+
.appium-replay-dialog .appium-replay-output::-webkit-scrollbar-thumb:hover {
|
|
1312
|
+
background: #4f4f4f;
|
|
1313
|
+
}
|
|
1314
|
+
|
|
1315
|
+
.appium-replay-output::selection {
|
|
1316
|
+
background: #264f78;
|
|
1317
|
+
color: #ffffff;
|
|
1317
1318
|
}
|
|
1318
1319
|
|
|
1319
1320
|
.appium-replay-fab {
|
|
@@ -1856,13 +1857,6 @@ select {
|
|
|
1856
1857
|
max-height: min(68vh, 720px);
|
|
1857
1858
|
}
|
|
1858
1859
|
|
|
1859
|
-
.code-dialog__toolbar {
|
|
1860
|
-
display: flex;
|
|
1861
|
-
justify-content: flex-end;
|
|
1862
|
-
gap: 8px;
|
|
1863
|
-
margin-bottom: 12px;
|
|
1864
|
-
}
|
|
1865
|
-
|
|
1866
1860
|
.code-dialog__editor .el-textarea__inner {
|
|
1867
1861
|
height: min(68vh, 720px);
|
|
1868
1862
|
max-height: min(68vh, 720px);
|
|
@@ -2619,7 +2613,7 @@ select {
|
|
|
2619
2613
|
|
|
2620
2614
|
@media (max-width: 520px) {
|
|
2621
2615
|
.appium-replay-dialog.el-dialog {
|
|
2622
|
-
min-width: calc(100vw -
|
|
2616
|
+
min-width: calc(100vw - 32px);
|
|
2623
2617
|
}
|
|
2624
2618
|
|
|
2625
2619
|
.appium-replay-fab {
|
|
@@ -2873,13 +2867,16 @@ select {
|
|
|
2873
2867
|
|
|
2874
2868
|
.appium-flow-step-shell {
|
|
2875
2869
|
position: relative;
|
|
2870
|
+
display: grid;
|
|
2871
|
+
grid-template-columns: minmax(0, 1fr);
|
|
2876
2872
|
width: 340px;
|
|
2877
2873
|
}
|
|
2878
2874
|
|
|
2879
2875
|
.appium-flow-step-card {
|
|
2876
|
+
grid-area: 1 / 1;
|
|
2880
2877
|
width: 340px;
|
|
2881
2878
|
min-height: 78px;
|
|
2882
|
-
padding: 10px
|
|
2879
|
+
padding: 10px 14px;
|
|
2883
2880
|
border: 1px solid #dfe8f3;
|
|
2884
2881
|
border-radius: 8px;
|
|
2885
2882
|
background: #fff;
|
|
@@ -2889,6 +2886,10 @@ select {
|
|
|
2889
2886
|
cursor: pointer;
|
|
2890
2887
|
}
|
|
2891
2888
|
|
|
2889
|
+
.appium-flow-step-shell:has(> .appium-flow-step-card__actions) > .appium-flow-step-card {
|
|
2890
|
+
padding-bottom: 44px;
|
|
2891
|
+
}
|
|
2892
|
+
|
|
2892
2893
|
.appium-flow-step-shell--readonly .appium-flow-step-card {
|
|
2893
2894
|
padding-right: 14px;
|
|
2894
2895
|
cursor: default;
|
|
@@ -2956,9 +2957,11 @@ select {
|
|
|
2956
2957
|
}
|
|
2957
2958
|
|
|
2958
2959
|
.appium-flow-step-card__actions {
|
|
2959
|
-
|
|
2960
|
-
|
|
2961
|
-
|
|
2960
|
+
grid-area: 1 / 1;
|
|
2961
|
+
position: relative;
|
|
2962
|
+
align-self: end;
|
|
2963
|
+
justify-self: end;
|
|
2964
|
+
margin: 0 10px 10px;
|
|
2962
2965
|
display: inline-flex;
|
|
2963
2966
|
align-items: center;
|
|
2964
2967
|
gap: 2px;
|
|
@@ -2972,6 +2975,7 @@ select {
|
|
|
2972
2975
|
}
|
|
2973
2976
|
|
|
2974
2977
|
.appium-flow-step-editor {
|
|
2978
|
+
grid-area: 2 / 1;
|
|
2975
2979
|
width: 340px;
|
|
2976
2980
|
margin-top: 8px;
|
|
2977
2981
|
border-color: #dfe8f3;
|
|
@@ -3242,6 +3246,10 @@ body {
|
|
|
3242
3246
|
}
|
|
3243
3247
|
|
|
3244
3248
|
.el-dialog {
|
|
3249
|
+
--el-dialog-padding-primary: 0;
|
|
3250
|
+
padding: 0;
|
|
3251
|
+
margin-bottom: 24px;
|
|
3252
|
+
max-width: calc(100vw - 32px);
|
|
3245
3253
|
overflow: hidden;
|
|
3246
3254
|
border: 1px solid var(--ui-border);
|
|
3247
3255
|
border-radius: var(--ui-radius);
|
|
@@ -3249,14 +3257,32 @@ body {
|
|
|
3249
3257
|
}
|
|
3250
3258
|
|
|
3251
3259
|
.el-dialog__header {
|
|
3252
|
-
|
|
3260
|
+
margin-right: 0;
|
|
3261
|
+
padding: 16px 20px;
|
|
3253
3262
|
border-bottom: 1px solid var(--ui-border);
|
|
3254
3263
|
}
|
|
3255
3264
|
|
|
3265
|
+
.el-dialog__header.show-close {
|
|
3266
|
+
padding-right: 64px;
|
|
3267
|
+
}
|
|
3268
|
+
|
|
3269
|
+
.el-dialog__headerbtn {
|
|
3270
|
+
top: 8px;
|
|
3271
|
+
right: 12px;
|
|
3272
|
+
width: 40px;
|
|
3273
|
+
height: 40px;
|
|
3274
|
+
border-radius: var(--ui-radius-control);
|
|
3275
|
+
}
|
|
3276
|
+
|
|
3277
|
+
.el-dialog__headerbtn:hover {
|
|
3278
|
+
background: #eff6ff;
|
|
3279
|
+
}
|
|
3280
|
+
|
|
3256
3281
|
.el-dialog__title {
|
|
3257
3282
|
color: var(--ui-text);
|
|
3258
3283
|
font-size: 16px;
|
|
3259
3284
|
font-weight: 650;
|
|
3285
|
+
line-height: 24px;
|
|
3260
3286
|
}
|
|
3261
3287
|
|
|
3262
3288
|
.el-dialog__body {
|
|
@@ -3264,7 +3290,9 @@ body {
|
|
|
3264
3290
|
}
|
|
3265
3291
|
|
|
3266
3292
|
.el-dialog__footer {
|
|
3267
|
-
padding:
|
|
3293
|
+
padding: 16px 20px;
|
|
3294
|
+
border-top: 1px solid var(--ui-border);
|
|
3295
|
+
background: #f8fafc;
|
|
3268
3296
|
}
|
|
3269
3297
|
|
|
3270
3298
|
.el-message-box {
|
|
@@ -3440,13 +3468,56 @@ body {
|
|
|
3440
3468
|
|
|
3441
3469
|
.code-block,
|
|
3442
3470
|
.terminal-block,
|
|
3443
|
-
.generator-code-editor .el-textarea__inner
|
|
3444
|
-
.code-dialog__editor .el-textarea__inner {
|
|
3471
|
+
.generator-code-editor .el-textarea__inner {
|
|
3445
3472
|
background: #f8fafc;
|
|
3446
3473
|
color: #334155;
|
|
3447
3474
|
border: 1px solid var(--ui-border);
|
|
3448
3475
|
}
|
|
3449
3476
|
|
|
3477
|
+
.code-dialog__body,
|
|
3478
|
+
.code-dialog__editor .el-textarea__inner {
|
|
3479
|
+
box-sizing: border-box;
|
|
3480
|
+
border: 1px solid #3c3c3c;
|
|
3481
|
+
background: #1e1e1e;
|
|
3482
|
+
color: #d4d4d4;
|
|
3483
|
+
font-family: "SFMono-Regular", Consolas, "Liberation Mono", Menlo, monospace;
|
|
3484
|
+
scrollbar-color: #424242 #1e1e1e;
|
|
3485
|
+
}
|
|
3486
|
+
|
|
3487
|
+
.code-dialog__body {
|
|
3488
|
+
white-space: pre;
|
|
3489
|
+
}
|
|
3490
|
+
|
|
3491
|
+
.code-dialog__body::-webkit-scrollbar,
|
|
3492
|
+
.code-dialog__editor .el-textarea__inner::-webkit-scrollbar {
|
|
3493
|
+
width: 10px;
|
|
3494
|
+
height: 10px;
|
|
3495
|
+
}
|
|
3496
|
+
|
|
3497
|
+
.code-dialog__body::-webkit-scrollbar-track,
|
|
3498
|
+
.code-dialog__editor .el-textarea__inner::-webkit-scrollbar-track {
|
|
3499
|
+
background: #1e1e1e;
|
|
3500
|
+
}
|
|
3501
|
+
|
|
3502
|
+
.code-dialog__body::-webkit-scrollbar-thumb,
|
|
3503
|
+
.code-dialog__editor .el-textarea__inner::-webkit-scrollbar-thumb {
|
|
3504
|
+
border: 2px solid #1e1e1e;
|
|
3505
|
+
border-radius: 6px;
|
|
3506
|
+
background: #424242;
|
|
3507
|
+
}
|
|
3508
|
+
|
|
3509
|
+
.code-dialog__body::-webkit-scrollbar-thumb:hover,
|
|
3510
|
+
.code-dialog__editor .el-textarea__inner::-webkit-scrollbar-thumb:hover {
|
|
3511
|
+
background: #4f4f4f;
|
|
3512
|
+
}
|
|
3513
|
+
|
|
3514
|
+
.code-dialog__body::selection,
|
|
3515
|
+
.code-dialog__body code::selection,
|
|
3516
|
+
.code-dialog__editor .el-textarea__inner::selection {
|
|
3517
|
+
background: #264f78;
|
|
3518
|
+
color: #fff;
|
|
3519
|
+
}
|
|
3520
|
+
|
|
3450
3521
|
.automation-layout,
|
|
3451
3522
|
.automation-stage {
|
|
3452
3523
|
gap: 16px;
|
|
@@ -3567,9 +3638,14 @@ body {
|
|
|
3567
3638
|
|
|
3568
3639
|
.appium-replay-output--dialog {
|
|
3569
3640
|
border-radius: var(--ui-radius-control);
|
|
3570
|
-
background: #
|
|
3571
|
-
color: #
|
|
3572
|
-
border: 1px solid
|
|
3641
|
+
background: #1e1e1e;
|
|
3642
|
+
color: #d4d4d4;
|
|
3643
|
+
border: 1px solid #3c3c3c;
|
|
3644
|
+
box-shadow:
|
|
3645
|
+
inset 0 1px 0 rgb(255 255 255 / 6%),
|
|
3646
|
+
inset 0 4px 12px rgb(0 0 0 / 32%),
|
|
3647
|
+
0 4px 10px rgb(15 23 42 / 12%),
|
|
3648
|
+
0 18px 30px -20px rgb(15 23 42 / 45%);
|
|
3573
3649
|
}
|
|
3574
3650
|
|
|
3575
3651
|
.el-button.recorder-panel-tool {
|
|
@@ -3600,23 +3676,12 @@ body {
|
|
|
3600
3676
|
box-shadow: 0 18px 48px rgba(15, 23, 42, 0.18);
|
|
3601
3677
|
}
|
|
3602
3678
|
|
|
3603
|
-
.appium-flow-dialog .el-dialog__header {
|
|
3604
|
-
flex: none;
|
|
3605
|
-
padding: 18px 20px 14px;
|
|
3606
|
-
border-bottom: 1px solid var(--ui-border);
|
|
3607
|
-
}
|
|
3608
|
-
|
|
3609
|
-
.appium-flow-dialog .el-dialog__title {
|
|
3610
|
-
font-size: 16px;
|
|
3611
|
-
font-weight: 650;
|
|
3612
|
-
}
|
|
3613
|
-
|
|
3614
3679
|
.appium-flow-dialog .el-dialog__body {
|
|
3615
3680
|
display: flex;
|
|
3616
3681
|
flex-direction: column;
|
|
3617
3682
|
flex: 1;
|
|
3618
3683
|
min-height: 0;
|
|
3619
|
-
padding:
|
|
3684
|
+
padding: 20px;
|
|
3620
3685
|
}
|
|
3621
3686
|
|
|
3622
3687
|
.appium-flow-dialog__toolbar { flex: none; }
|
|
@@ -3629,8 +3694,26 @@ body {
|
|
|
3629
3694
|
min-height: 0;
|
|
3630
3695
|
}
|
|
3631
3696
|
|
|
3632
|
-
.appium-flow-dialog .
|
|
3633
|
-
|
|
3697
|
+
.appium-flow-dialog .appium-flow-canvas--dialog.appium-flow-canvas--vue,
|
|
3698
|
+
.appium-linked-script-preview-dialog .appium-linked-script-preview-canvas.appium-flow-canvas--vue {
|
|
3699
|
+
border-color: rgb(100 116 139 / 32%);
|
|
3700
|
+
box-shadow:
|
|
3701
|
+
0 3px 7px rgb(15 23 42 / 9%),
|
|
3702
|
+
0 18px 34px -20px rgb(15 23 42 / 38%);
|
|
3703
|
+
}
|
|
3704
|
+
|
|
3705
|
+
.appium-flow-dialog .appium-flow-canvas--dialog.appium-flow-canvas--vue::after,
|
|
3706
|
+
.appium-linked-script-preview-dialog .appium-linked-script-preview-canvas.appium-flow-canvas--vue::after {
|
|
3707
|
+
content: '';
|
|
3708
|
+
position: absolute;
|
|
3709
|
+
inset: 0;
|
|
3710
|
+
z-index: 4;
|
|
3711
|
+
border-radius: inherit;
|
|
3712
|
+
pointer-events: none;
|
|
3713
|
+
box-shadow:
|
|
3714
|
+
inset 0 4px 10px rgb(15 23 42 / 12%),
|
|
3715
|
+
inset 0 1px 2px rgb(15 23 42 / 10%),
|
|
3716
|
+
inset 0 -2px 3px rgb(255 255 255 / 82%);
|
|
3634
3717
|
}
|
|
3635
3718
|
|
|
3636
3719
|
.appium-recorded-steps-panel .el-button,
|
|
@@ -3901,6 +3984,19 @@ button:focus-visible { outline: 2px solid var(--ui-primary); outline-offset: -2p
|
|
|
3901
3984
|
.layout .appium-flow-editor, .layout .device-preview {
|
|
3902
3985
|
box-shadow: var(--ui-shadow-inset);
|
|
3903
3986
|
}
|
|
3987
|
+
.layout .appium-flow-canvas--vue:not(.appium-flow-canvas--dialog) {
|
|
3988
|
+
border-color: rgb(100 116 139 / 25%);
|
|
3989
|
+
box-shadow: 0 2px 4px rgb(15 23 42 / 6%), 0 10px 24px -12px rgb(15 23 42 / 20%);
|
|
3990
|
+
}
|
|
3991
|
+
.layout .appium-flow-canvas--vue:not(.appium-flow-canvas--dialog)::after {
|
|
3992
|
+
content: '';
|
|
3993
|
+
position: absolute;
|
|
3994
|
+
inset: 0;
|
|
3995
|
+
z-index: 4;
|
|
3996
|
+
border-radius: inherit;
|
|
3997
|
+
pointer-events: none;
|
|
3998
|
+
box-shadow: inset 0 3px 8px rgb(15 23 42 / 10%), inset 0 1px 2px rgb(15 23 42 / 8%), inset 0 -2px 3px rgb(255 255 255 / 75%);
|
|
3999
|
+
}
|
|
3904
4000
|
.layout .app-preset-row, .layout .script-row {
|
|
3905
4001
|
background-image: linear-gradient(180deg, #fff, #f8fafc);
|
|
3906
4002
|
box-shadow: var(--ui-shadow-control);
|