1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
|
# main页面
##上导航栏
mainPage_navigationBar_logo_posCss = ".tsg-img-logo"
mainPage_button_menu_posXpath = '//div[@class="systemMenu"]//span[text()="Menu"]' # menu按钮定位
mainPage_button_adminArea_posCss = ".el-dropdown-menu__item:nth-child(3) > .el-row--flex > .el-col:nth-child(2)" # Admin Area按钮定位
mainPage_button_adminArea_posXpath = "//*[@class='level1-icon iconfont icon-Admin-Area']/../../.." # Admin Area按钮定位
# mainPage_text_adminArea_posXpath = "//span[@class='root-title']" #当前页面左上角Admin Area定位
mainPage_icon_adminArea_posXpath = "//i[@class='root-icon iconfont iconfont icon-Admin-Area']"
mainPage_siderbar_titile = '//div[@class="SidebarTitle"]/div/i' # 左上角导航栏标题
mainPage_header_right_preference_posXpath = "//div[@class='header-right']//span[@class='header-theme']" # 右上角的快捷切换色系模式按钮
# 菜单栏================================菜单栏===================================菜单栏================================菜单栏==================================菜单栏========================菜单栏
##菜单栏
mainPage_firstLevelMenu_manageUsers_posXpath = "//*[@id='Administration']/div/span[2]" # 一级菜单Manage Users
mainPage_firstLevelMenu_manageUsersStyle_posId = "Administration" # 一级菜单Manage Users的样式打开为:level1 level1-submenu el-submenu is-active is-opened clear-active
mainPage_secondLevelMenu_users_posId = "system_accounts/system_UserManagement" # 一级菜单Users
mainPage_secondLevelMenu_roses_posId = "system_accounts/roles" # 二级菜单Roles
mainPage_secondLevelMenu_loginProfiles_posId = "Login_Restrictions" # 二级菜单Login Profiles
mainPage_secondLevelMenu_loggedInUsers_posId = "system_loggedInUser" # 二级菜单Logged in Users
mainPage_secondLevelMenu_loginLogs_posId = "system_LoginLog" # 二级菜单Login Logs
mainPage_firstLevelMenu_serverProfiles_posId = "Server_Profiles" # 一级菜单Server Profiles
mainPage_secondLevelMenu_ldapServers_posId = "system_LadpServer" # 二级菜单Ladp Servers
mainPage_secondLevelMenu_mail_Server_posId = "system_MailServer" # 二级菜单Mail Server
mainPage_firstLevelMenu_virtualSystems_posId = "Virtual Systems" # 一级菜单Virtual Systems
mainPage_firstLevelMenu_logUsage_posId = "Log Usage" # 一级菜单Log Usage
mainPage_firstLevelMenu_logSettings_posId = "Log Settings" # 一级菜单Log Settings
mainPage_firstLevelMenu_SystemAppearance_XPATH = '//*[@id="menuItem"]/li[6]' # 一级菜单 System Appearance
mainPage_firstLevelMenu_SystemUpdates_XPATH = '//*[@id="menuItem"]/li[7]' # 一级菜单 System Updates
mainPage_firstLevelMenu_SystemAssessment_XPATH = '//*[@id="System_Assessment"]/div/span[2]' # 一级菜单 System Assessment
mainPage_secondLevelMenu_SystemAssessment_XPATH = '//*[@id="System_Assessment/web_sketch_assessment"]' # 二级菜单 Web Sketch Assessment
mainPage_firstLevelMenu_virtualSystems_posXpath = "//*[@role='menuitem']//i[@class='level1-icon iconfont icon-Virtual-Systems']" # 一级菜单Virtual Systems
mainPage_firstLevelMenu_logUsage_posXpath = "//*[@role='menuitem']//i[@class='level1-icon iconfont icon-Log-Usage']" # 一级菜单Log Usage
mainPage_firstLevelMenu_logSettings_posXpath = "//*[@role='menuitem']//i[@class='level1-icon iconfont icon-Log-Settings']" # 一级菜单Log Settings
mainPage_firstLevelMenu_LibraryManagement = '//*[@id="Library_Management"]/div/span[2]' # 一级菜单 Library Management
mainPage_firstLevelMenu_admin_logs = '//*[@id="menuItem"]/li[9]' # 一级菜单 Admin Logs
mainPage_firstLevelMenu_federation_posXpath = "//li[@id='Federation']/div/span[@class='level1-title']" # 一级菜单 Federation
mainPage_firstLevelMenu_datapath_telemetry_posXpath = "//i[@class='level1-icon iconfont icon-a-DatapathTelemetry']/.." # 一级菜单 Datapath Telemetry
mainPage_firstLevelMenu_back_and_restore_posXpath = "//i[@class= 'level1-icon iconfont icon-a-BackupandRestore']/.." # 一级菜单Backup and Restore
mainPage_firstLevelMenu_traffic_link_posXpath = '//i[@class="level1-icon iconfont icon-a-TrafficLinks"]/..' # 一级菜单 Traffic Links
mainPage_secondLevelMenu_cluster_posId = "system_clusters" # 二级菜单Cluster
mainPage_secondLevelMenu_policy_link_posId = "system_PolicyLink" # 二级菜单Policy Link
mainPage_secondLevelMenu_policy_link_posXpath = '//*[@id="system_PolicyLink"]/a' # 二级菜单Policy links
# Common Turn Page===================================================================================================================================================================
common_page_text_total_posXpath = "//span[@class='el-pagination__total']" # 翻页-当前列表总记录数定位
common_page_text_page_lines_posXpath = "//*[@class='pageLines color262626']/span" # 翻页-当前每页记录条数
common_page_goto_input_posXpath = "//*[@class='el-input el-input--small el-pagination__editor is-in-pagination']/input" # 翻页-当前Go to后的输入框定位
common_page_button_next_posXpath = "//*[@class='el-pagination is-background']//button[@class='btn-next']" # 翻页-下一页>按钮
common_page_button_prev_posXpath = "//*[@class='el-pagination is-background']//button[@class='btn-prev']" # 翻页-前一页<按钮
# common_page_button_page_num_posXpath = "//*[@class='el-pager']/li['{replaceIndex}']" #翻页-指定页数
common_page_button_target_page_num_posXpath = "//*[@class='el-pager']/li[normalize-space(text())='{replaceIndex}']" # 翻页-指定页数,页码需要省略显示时可正确定位页码位置
common_page_button_current_page_num_posXpath = "//*[@class='number active']"
# Common Language Bar=========================================================================================================================================================================
common_language_button_posXpath = "//i[contains(@class,'cursor-pointer iconfont')]" # 当前语言栏对应语言,可点击打开语言选择栏
common_language_button_current_posXpath = "//i[@class,'iconfont cursorPointer icon-Lang_{replaceLanguage}Select']" # 当前语言
common_language_button_target_posXpath = "//div[@class='el-select-dropdown el-popper top32']//span[normalize-space(text())='{replaceLanguage}']/.." # 可供选中的语言栏
# Common User MultiSession Tip:
common_multi_session_tip_posXpath = "//*[@class='floatleft']" # 用户多Session登录提示框
common_multi_session_tip_button_close_posXpath = "//div[@class='VMessageTips']//i[@class='iconfont icon-Delete_X']" # 用户多Session登录提示框关闭按钮
common_UTCTips_posXpath = "//*[@class='UTCTips positionAbsolute'][1]//i[@class='iconfont icon-Delete_X']" # 右上角时区不一致提醒
common_license_posXpath = "//*[@class='UTCTips positionAbsolute'][2]//i[@class='iconfont icon-Delete_X']" # 右上角Licese即将到期提醒
common_current_user_vsys_posXpath = "//div[@class='VsysTree']//div[@class='menu-title']" # 当前用户的全部Vsys
common_tips_posXpath = "//i[@class='iconfont icon-Delete_X']" # 右上角的提示框关闭按钮
common_eventfixed_posXpath = "//*[@id='eventfixed']" # 列设置按钮
common_eventfixed_titile_posXpath = "//*[@class='rcd-editpart']" # 列设置悬浮标题
common_eventfixed_permanent_fields_posXpath = "//*[@class='prohibit']/label/span[@class='el-checkbox__label']" # 持久显示列定位
common_eventfixed_default_fields_posXpath = "//li[contains(@id,'dropColRes-_ElementSet')][@class ='']/label[@class='el-checkbox is-checked']/span[@class='el-checkbox__label']" # 默认显示列定位
common_eventfixed_customize_fields_posXpath = "//li[contains(@id,'dropColRes-_ElementSet')][@class ='']/label[@class='el-checkbox']/span[@class='el-checkbox__label']" # 用户自定义显示列定位
common_eventfixed_button_all_posXpath = "//div[@class='all-btn']//label" # 列设置All快速选中所有列设置按钮
common_eventfixed_button_cancelAll_posXpath = "//*[contains(@id,'dropColALlFalse-_ElementSet')]" # 列设置Cancel快速取消所有列选中按钮.24.02版本取消该按钮
common_eventfixed_button_ok_posXpath = "//*[contains(@id,'dropColOK-_ElementSet')]" # 列设置OK保存本次列设置按钮
common_eventfixed_button_cancel_posXpath = "//*[contains(@id,'dropColcancel-_ElementSet')]" # 列设置Cancel取消本次列设置按钮
common_eventfixed_specify_column_posXpath = "//div[@class='ly-eventfixed']//span[normalize-space(text())='{replaceName}']/.." # 列设置界面按列名选择对应列
# Leave this page?
# Changes you made are not saved.
common_leave_current_page_button_posXpath = "//button[@class='el-button el-button--default el-button--small el-button--primary operation-confirm-Leave']" # 离开
common_leave_current_page_button_cancel_posXpath = "//button[@class='el-button el-button--default el-button--small leavePage-Cancel']" # 取消
# Common Current User==================================================================================================
common_current_user_name = "//div[@id='user_avator']/span" # 当前登录用户名
common_menu_switch = "//*[@class='iconfont collaps-zhankai icon-ArrowDouble_{replaceName}']" # 左侧菜单Bar开关按钮
common_text_prompt_posXpath = "//div[@class='el-form-item__error']" # 错误提示公共定位,可以用于界面的错误提示,和弹窗提示
common_list_page_first_row_posXpath = "//*[@id='ly-table1-listcontent']/div/div[3]/table/tbody/tr[1]" # 列表页首行定位
common_list_page_table_tbody_posXpath = ".//div[contains(@class,'ly-table1')]//tbody" # 列表tabel body xpath
common_list_page_table_header_posXpath = ".//div[contains(@class,'ly-table1')]//table[@class='el-table__header']//thead//tr" # 列表table 表头xpath
# profiles模块页面底部all、页面跳转设置
common_list_page_bottom_button_allSelect_posXpath = "//div[@class='page-box-containcheck']//label[contains(@class, 'allCheckbox')]/span/span" # 底部页面设置中ALl选择按钮
# Manage Users 查询栏===================Manage Users 查询栏=====================Manage Users 查询栏=================Manage Users 查询栏=======================Manage Users 查询栏=================
##Manage Users模块查询栏
mainPage_common_search_selectLabel_posId = "select-label" # 查询框id
mainPage_common_search_buttonSearch_posId = "searchQuery" # 查询按钮id
mainPage_common_search_buttonClear_posId = "searchClear" # 清空查询按钮id
# 列表页的All按钮定位
common_check_box_all_posId = "all" # 全选时样式包含:el-checkbox allCheckbox is-checked
# 列表页每行前的复选框://div[@role='group']
common_row_check_box_posXpath = "//div[@role='group']/label" # 选择后样式:el-checkbox is-checked
##Manage Users模块公共定位
listPage_common_dropDown_item_posXpath = "//div[contains(@class,'el-scrollbar')]//span[normalize-space(text())='{replaceName}']" # 下拉菜单定位
listPage_common_input_itemContent_posXpath = "//div[contains(@class,'ListItem')]//span[normalize-space(text())='{replaceName}']/ancestor::div[contains(@class,'ListItem')]//input" # 输入item的值,replaceName替换实际查询值
listPage_common_dropDown_typeItem_posXpath = "//div[contains(@class,'select-popper')]//span[normalize-space(text())='{replaceName}']" # 查询中type的下拉item定位,replaceName替换实际查询值
listPage_common_tableTbody_posXpath = "//div[contains(@class,'ly-table1')]//tbody" # 列表tabel body xpath
listPage_common_tableHeader_posXpath = "//div[contains(@class,'ly-table1')]//table[@class='el-table__header']//thead//tr" # 列表table 表头xpath
# listPage->Tips dialog 列表页 tips对话框
listPage_common_button_yes_posCss = ".delComponents-ok span" # 删除提示的Tips的yes按钮
listPage_common_button_no_posCss = ".delComponents-close span" # 删除提示的Tips的close按钮
edit_common_button_warningSaveYes_posCss = ".el-message-box__btns .el-button--primary span" # 提示保存ok按钮警告框
edit_common_button_warningSaveCancel_posCss = ".el-message-box__btns .operation-cancel span" # 提示保存取消按钮警告框
# Manage Users:Login Profiles===================Manage Users:Login Profiles====================Manage Users:Login Profiles=================Manage Users:Login Profiles=======================
# Manage Users:Login Profiles 列表页
listPage_manageUsers_loginProfiles_createButton_posId = "app_create-_OperateBtns_ElRow_Certificate_SSL_Home_App_anonymousComponent" # create按钮id
listPage_manageUsers_loginProfiles_editButton_posId = "appEdit-_OperateBtns_ElRow_Certificate_SSL_Home_App_anonymousComponent" # edit按钮id
listPage_manageUsers_loginProfiles_delButton_posXpath = "//*[@id='appDel-_OperateBtns_ElRow_Certificate_SSL_Home_App_anonymousComponent']" # del按钮id
listPage_manageUsers_loginProfiless_selectLabel_posId = mainPage_common_search_selectLabel_posId # 查询框id,使用公共定位
listPage_manageUsers_loginProfiles_buttonSearch_posId = mainPage_common_search_buttonSearch_posId # 查询按钮id,使用公共定位
listPage_manageUsers_loginProfiles_buttonClear_posId = mainPage_common_search_buttonClear_posId # 清空查询按钮id,使用公共定位
listPage_manageUsers_loginProfiles_dropDown_item_posXpath = listPage_common_dropDown_item_posXpath # 下拉菜单定位,使用公共定位
listPage_manageUsers_loginProfiles_input_itemContent_posXpath = listPage_common_input_itemContent_posXpath # 输入item的值,replaceName替换实际查询值,使用公共定位
listPage_manageUsers_loginProfiles_dropDown_typeItem_posXpath = listPage_common_dropDown_typeItem_posXpath # 查询中type的下拉item定位,replaceName替换实际查询值,使用公共定位
listPage_manageUsers_loginProfiles_tableTbody_posXpath = listPage_common_tableTbody_posXpath # 列表tabel body xpath,使用公共定位
listPage_manageUsers_loginProfiles_tableHeader_posXpath = listPage_common_tableHeader_posXpath # 列表table 表头xpath,使用公共定位
# listPage->Tips dialog 列表页 tips对话框
listPage_dialogTips_loginProfiles_button_yes_posCss = listPage_common_button_yes_posCss # 删除提示的Tips的yes按钮,使用公共定位
listPage_dialogTips_loginProfiles_button_no_posCss = listPage_common_button_no_posCss # 删除提示的Tips的close按钮,使用公共定位
# Create 和 Edit Login Profiles 新增和编辑页
loginProfiles_input_Name_posId = "virtual-name1" # name输入框id
loginProfiles_radioButtonChecked_passwordStrength_posXpath = "//*[@class='el-radio-button el-radio-button--mini is-active']/input" # Password Strength被选中的按钮定位
loginProfiles_radioButton_passwordStrength_posXpath = "//*[@name='{replaceName}']/.." # Minimum Password Strength单选按钮:Fair,1;Good,2;Strong:3. Xpath,
loginProfiles_bar_passwordStrength_posXpath = "//*[@class='el-progress-bar__inner']" # Minimum Password Strength对应强度条:Fair;Good;Strong Xpath,获取Style:选中为el-radio-button el-radio-button--mini is-active
loginProfiles_text_passwordStrengthInclude_posXpath = "//*[@class='el-form ly-addform1 el-form--label-left']/div[3]/div/div[3]" # Minimum Password Strength对应强度包含内容提示:Fair;Good;Strong Xpath,获取Style
loginProfiles_text_passwordStrengthContents_posXpath = "//*[@class='el-form ly-addform1 el-form--label-left']/div[3]/div/div[{replaceIndex}]" # Minimum Password Strength对应强度包含内容提示:Fair;Good;Strong Xpath,获取Style
loginProfiles_text_passwordStrengthLength_posXpath = "//*[@class='el-form ly-addform1 el-form--label-left']/div[3]/div/div[8]" # Minimum Password Strength对应强度长度提示:Fair;Good;Strong Xpath,获取Style
loginProfiles_input_requireEvery_posId = "RequireEvery" # Require Password Change Every输入框id
loginProfiles_button_authentication_posXpath = "//*[@id='authentication']/.." # Enforce two-factor authentication开关按钮Xpath,id 无法定位 el-switch is-checked
# loginProfiles_button_authenticationStyle_posXpath = "//*[@id='authentication']/.." #Enforce two-factor authentication打开样式:el-switch is-checked
loginProfiles_button_enableLoginHours_posXpath = "//*[@id='EnableLoginHours']/.." # Enable login hours restriction开关按钮Xpath,id定位无法点击
# loginProfiles_button_enableLoginHoursStyle_posXpath = "//*[@id='temporary_form']/.." #Enable login hours restriction开关打开样式:el-switch is-checked
loginProfiles_input_timeZone_posXpath = "//*[@id='policy_Manipulation2']//div[@class='el-select el-select--small']//input" # Time Zone的输入框xpath
loginProfiles_btn_loginHours_posXpath = "//*[@class='VTimeWeek-chunk VTimeWeek-box-week-{replaceIndex}']" # Login Hours的选择xpath VTimeWeek-chunk VTimeWeek-box-week-sun1 可替换内容:sun1,sun1-24,mon1-24,tue1-24,wed1-24,thu1-24,fri1-24,sat1-24
loginProfiles_radioButton_loginPermitted_posXpath = "//*[@role='radiogroup']/label/span[2][normalize-space(text())='{replaceName}']" # Login Permitted、Login Denid选择按钮
loginProfiles_select_timeZone_posXpath = "//div[@class='utc']/span[normalize-space(text())='{replaceName}']" # Time Zone选项时区,比如:Africa/Abidjan
loginProfiles_button_restrictionLoginAddr_posXpath = "//*[@id='restrictionLoginAddr']/.." # "//*[@id='policy_Manipulation2']/div/div[2]/div/div/form/div[11]/div/div" #Only Allow Authorized IPs to login开关Xpath,id:restrictionLoginAddr不可点击
# loginProfiles_button_restrictionLoginAddrStyle_posXpath = "//*[@id='restrictionLoginAddr']/.." #Only Allow Authorized IPs to login开关状态定位
loginProfiles_button_addLoginIP_posId = "temporary_form" # Authorized Ips添加输入框按钮定位
loginProfiles_button_addLoginIPSave_posXpath = "//*[@id='editForm{replaceIndex}'][2]" # Authorized Ips添加ip后的保存按钮
loginProfiles_input_loginIP_posXpath = "//*[@id='ip{replaceIndex}']/div[2]/div/input" # Authorized Ips输入框定位
loginProfiles_button_loginIPSaveEditDel_posXpath = "//*[@id='editForm{replaceIndex1}'][{replaceIndex}]" # Authorized Ips输入框后保存、删除按钮定位
loginProfiles_row_restrictionLoginAddr_posXpath = "//*[@class='item-row']" # 获取该样式的行数,以获取最大记录数,得到下个新增ip输入框的定位
# loginProfiles_button_loginIPEditSave_posXpath= "//div[contains(@class,'item-row')]//span[normalize-space(text())='{replaceText}']/../../../../div[2]/i[1]" #Only Allow Authorized IPs记录后对应的编辑按钮
loginProfiles_button_loginIPEdit_posXpath = "//i[contains(@id,'editForm')]/../..//span[normalize-space(text())='{replaceText}']/../../../../..//i[contains(@id,'editForm')][1]" # Only Allow Authorized IPs记录后对应的编辑按钮
loginProfiles_input_loginIPEdit_posXpath = "//div[contains(@class,'item-row')]//span[normalize-space(text())='{replaceText}']/../..//input" # Only Allow Authorized IPs记录后对应的编辑输入框
loginProfiles_button_loginIPSave_posXpath = "//div[contains(@class,'item-row')]//span[normalize-space(text())='{replaceText}']/../../../../..//i[contains(@id,'editForm')][2]" # Only Allow Authorized IPs记录后对应的保存按钮
loginProfiles_button_loginIPDelete_posXpath = "//div[contains(@class,'item-row')]//span[normalize-space(text())='{replaceText}']/../../../../..//i[contains(@id,'delForm')]" # Only Allow Authorized IPs记录后对应的删除按钮
loginProfiles_input_maxLoginAttmepts_posId = "max_login_attempts" # maxLoginAttmepts输入框id
loginProfiles_input_lockoutMinutes_posId = "lockoutMinutes" # lockoutMinutes输入框id
loginProfiles_button_oK_posId = "wanAdd_ok-_LoginRestrictions_Home_App_anonymousComponent" # OK按钮id
loginProfiles_button_cancel_posId = "virtual-cancel-_LoginRestrictions_Home_App_anonymousComponent" # Cancel按钮id
loginProfiles_button_warningSaveYes_posCss = edit_common_button_warningSaveYes_posCss # 提示保存ok按钮警告框,使用公共定位
loginProfiles_button_warningSaveCancel_posCss = edit_common_button_warningSaveCancel_posCss # 提示保存取消按钮警告框,使用公共定位
loginProfiles_first_row_posXpath = "//tr[@class='el-table__row'][1]" # 列表第一行定位
loginProfiles_first_row_reference_count_posXpath = "//tr[contains(@class,'el-table__row')][1]//div[@class='obj-charts-btn pro-port cursorPointer textCenter']" # 第一行被引用计数列定位
loginProfiles_button_login_hours_posXpath = "//*[@class='vue-drag-select-option selected-item']" # 所有Login Hours定位
loginProfiles_button_login_hours_first_posXpath = "//span[@class='VTimeWeek-chunk VTimeWeek-box-week-sun1']" # Login Hours第一个时间按钮
loginProfiles_button_login_hours_last_posXpath = "//span[@class='VTimeWeek-chunk VTimeWeek-box-week-sat24']" # Login Hours最后一个时间按钮
loginProfiles_button_login_allow_ip_delete_posXpath = "//i[@class='iconfont icon-Delete_X btn']" # 所有Allow Ip删除按钮定义
loginProfiles_list_reference_count = "//tbody/tr[{replaceIndex}]//div[@class='obj-charts-btn pro-port cursorPointer textCenter']" # 列表列reference count第N行值定位
# Manage Users:Roles===================Manage Users:Roles====================Manage Users:Roles=================Manage Users:Roles=======================Manage Users:Roles=======================
# Manage Users:Roles 列表页
listPage_manageUsers_roles_createButton_posXpath = "//*[@id='app_create-_OperateBtns_ElRow_roles_Home_App_anonymousComponent']" # Create按钮
listPage_manageUsers_roles_editButton_posXpath = "//*[@id='appEdit-_OperateBtns_ElRow_roles_Home_App_anonymousComponent']" # Edit按钮
listPage_manageUsers_roles_deleteButton_posXpath = "//*[@id='appDel-_OperateBtns_ElRow_roles_Home_App_anonymousComponent']" # Delete按钮
listPage_manageUsers_roles_selectLabel_posId = mainPage_common_search_selectLabel_posId # 查询框id,使用公共定位
listPage_manageUsers_roles_buttonSearch_posId = mainPage_common_search_buttonSearch_posId # 查询按钮id,使用公共定位
listPage_manageUsers_roles_buttonClear_posId = mainPage_common_search_buttonClear_posId # 清空查询按钮id,使用公共定位
listPage_manageUsers_roles_dropDown_item_posXpath = listPage_common_dropDown_item_posXpath # 下拉菜单定位,使用公共定位
listPage_manageUsers_roles_input_itemContent_posXpath = listPage_common_input_itemContent_posXpath # 输入item的值,replaceName替换实际查询值,使用公共定位
listPage_manageUsers_roles_dropDown_typeItem_posXpath = listPage_common_dropDown_typeItem_posXpath # 查询中type的下拉item定位,replaceName替换实际查询值,使用公共定位
listPage_manageUsers_roles_tableTbody_posXpath = listPage_common_tableTbody_posXpath # 列表tabel body xpath,使用公共定位
listPage_manageUsers_roles_tableHeader_posXpath = listPage_common_tableHeader_posXpath # 列表table 表头xpath,使用公共定位
# listPage->Tips dialog 列表页 tips对话框
listPage_dialogTips_roles_button_yes_posCss = listPage_common_button_yes_posCss # 删除提示的Tips的yes按钮,使用公共定位
listPage_dialogTips_roles_button_no_posCss = listPage_common_button_no_posCss # 删除提示的Tips的close按钮,使用公共定位
# Create 和 Edit Roles 新增和编辑页
roles_button_clickForDetail_posXpath = "//*[@id='permissions{replaceIndex}']" # 列表行的Click for details按钮定位
roles_input_name_posXpath = "//*[@id='name_add_roles_Home_App_anonymousComponent']" # Name输入框
roles_textArea_description_posXpath = "//*[@id='description_add_roles_Home_App_anonymousComponent']" # Description输入框
# 24.02前定位roles_menu_name_posXpath = "//div[contains(@class,'l_tree_click')]//span[normalize-space(text())='{replaceName}']" #Role菜单列表各菜单定位
roles_menu_button_name_posXpath = "//div[contains(@class,'l_tree_click')]//span[normalize-space(text())='{replaceName}']/../i" # Role菜单列表各菜单选择按钮定位:iconfont switch_i 可写样式: icon-Rolesenable;只读样式: icon-Rolesreadonly;禁用样式:icon-Rolesdisable
roles_menu_button_name_leaf_posXpath = "//div[contains(@class,'l_tree_click')]//span[normalize-space(text())='{replaceName}']/../i[not(contains(@id,'MenuTree_icon'))]" # Role菜单列表菜单名称重复的叶子菜单单选择按钮定位
roles_row_button_clickForDetail_posXpath = "//*[@id='permissions{replaceIndex}']" # 列表每行记录Click for details定位
roles_row_button_cancelDetail_posXpath = "//*[@id='Cancle-_ViewMenuTree_VDraswer_EditDraw_roles_Home_App_anonymousComponent']" # 列表每行记录View打开页面的Cancel取消Menu Tree按钮定位
roles_row_button_closeDetail_posXpath = "//*[@class='iconfont icon-Clear_aNormal floatright cursorPointer']" # 列表每行记录View打开页面的*关闭Menu Tree按钮定位
roles_detail_menu_button_posXpath = "//*[@class='right-menu-content']//div[contains(@class,'l_tree_click')]//span[normalize-space(text())='{replaceName}']/../i" # Role列表点击对应记录的Click for details打开菜单Menu定位
roles_detail_menu_button_leaf_posXpath = "//*[@class='right-menu-content']//div[contains(@class,'l_tree_click')]//span[normalize-space(text())='{replaceName}']/../i[not(contains(@id,'Menu'))]" # Role列表点击对应记录的Click for details打开菜单叶子Menu定位MenuTree_icon
# roles_menu_button_posXpath = "//*[@id='{replaceIndex}']" #id需要字典和菜单名称对应:Role菜单列表各菜单选择按钮定位#Role菜单列表各菜单选择按钮定位:iconfont switch_i 可写样式: icon-Rolesenable;只读样式: icon-Rolesreadonly;禁用样式:icon-Rolesdisable
# roles_menu_name_posXpath = "//*[@id="{replaceIndex}"]/../span" #Role菜单列表各菜单定位
roles_button_oK_posXpath = "//*[@id='rolesOk']" # OK按钮id
roles_button_cancel_posXpath = "//*[@id='rolesCancel']" # Cancel按钮id
roles_button_warningSaveYes_posCss = edit_common_button_warningSaveYes_posCss # 提示保存ok按钮警告框,使用公共定位
roles_button_warningSaveCancel_posCss = edit_common_button_warningSaveCancel_posCss # 提示保存取消按钮警告框,使用公共定位
roles_text_first_row_name_posXpath = "//*[@class='el-table__body-wrapper is-scrolling-none']//tr[1]//span[@class='el-tooltip ellipsis white-space item']" # 第一行记录name内容定位
roles_page_name_error_posXpath = "//div[@class='el-form-item__error']" # Role Name为空或长度不符提示
# 24.02调整后新定义元素
roles_menu_name_posXpath = "//div[contains (@class,'l_folder inlineBlock menu_name text-overflow-ellipsis padding-left')]" # 编辑界面具体菜单根据名称定位
# 根据菜单名称找到上级li,该菜单的所有操作元素都在该li下
role_menu_all_persimmon_button_posXpath = "//input[@class='el-checkbox-button__original']" # 菜单后的Select All/Deselect All(全选/取消)快捷按钮
# 菜单无对应权限操作-定位
role_menu_row_posXpath = "//div[contains(@class,'l_folder inlineBlock menu_name text-overflow-ellipsis padding-left')][normalize-space(text())='{replaceName}']/..//div[@class='l_folder inlineBlock']" # 根据菜单名称定位到菜单所在li
# role_menu_reports_row_posXpath = "//div[@class='l_folder inlineBlock menu_name text-overflow-ellipsis padding-left40'][normalize-space(text())='{replaceName}']/..//div[@class='l_folder inlineBlock']" #Reports特殊处理名称定位到菜单所在li
role_menu_no_persimmon_posXpath = "//div[@class='l_folder inlineBlock']/span"
roles_menu_elements_posXpath = "//form[@class='el-form ly-addform1 el-form--label-left']//div[@class='menuTree']/ul/li[@class='l_tree_branch']" # 2402Role编辑界面菜单名称元素集合定位,一个菜单一行,非叶子菜单无选择按钮,菜单名称:/div[@class='l_folder inlineBlock menu_name text-overflow-ellipsis']
rules_menu_save_button = "//button[@class='el-button el-button--success el-button--normal']" # 菜单保存按钮
rules_menu_cancel_button = "//button[contains(@class,'el-button el-button--info el-button--normal')]" # 取消菜单设置按钮
rules_menu_title_check_posXpath = "//*[@class='inlineBlock tree_folder']//input/.." # Role编辑界面菜单列头全选按钮
roles_menu_button_element_posXpath = "./div[normalize-space(text())='{replaceName}']/../div[{replaceIndex}]" # 2402Role,菜单下具体操作按钮定位
# Manage Users:Users===================Manage Users:Users====================Manage Users:Users=================Manage Users:Users=======================Manage Users:Users=======================
# Manage Users:Users 列表页
listPage_manageUsers_users_createButton_posXpath = "//*[@id='userAdd']" # Create按钮
listPage_manageUsers_users_editButton_posXpath = "//*[@id='userEdit']" # Edit按钮
listPage_manageUsers_users_filterButton_posXpath = "//*[@id='online']//span[normalize-space(text())='{replaceName}']" # All\Active\Blocked过了按钮"//*[@id='online']/label[{replaceIndex}]"
listPage_manageUsers_users_row_deleteButton_posCss = ".el-table__row:nth-child({replaceIndex}) .enable.el-popover__reference" # User每行操作按钮
listPage_manageUsers_users_operation_posXpath = "//div[@aria-hidden='false']" # User每行点击操作按钮后操作悬浮框
listPage_manageUsers_users_operation_del_posXpath = "//div[@id='{replaceIndex}']//li[3]" # User每行点击操作按钮后操作悬浮框刪除按鈕
listPage_manageUsers_users_operation_block_posXpath = "//div[@id='{replaceIndex}']//li[2]" # User每行点击操作按钮后操作悬浮框Block按鈕
listPage_manageUsers_users_selectLabel_posId = mainPage_common_search_selectLabel_posId # 查询框id,使用公共定位
listPage_manageUsers_users_buttonSearch_posId = mainPage_common_search_buttonSearch_posId # 查询按钮id,使用公共定位
listPage_manageUsers_users_buttonClear_posId = mainPage_common_search_buttonClear_posId # 清空查询按钮id,使用公共定位
listPage_manageUsers_users_dropDown_item_posXpath = listPage_common_dropDown_item_posXpath # 下拉菜单定位,使用公共定位
listPage_manageUsers_users_input_itemContent_posXpath = listPage_common_input_itemContent_posXpath # 输入item的值,replaceName替换实际查询值,使用公共定位
listPage_manageUsers_users_dropDown_typeItem_posXpath = listPage_common_dropDown_typeItem_posXpath # 查询中type的下拉item定位,replaceName替换实际查询值,使用公共定位
listPage_manageUsers_users_tableTbody_posXpath = listPage_common_tableTbody_posXpath # 列表tabel body xpath,使用公共定位
listPage_manageUsers_users_tableHeader_posXpath = listPage_common_tableHeader_posXpath # 列表table 表头xpath,使用公共定位
# listPage->Tips dialog 列表页 tips对话框
listPage_dialogTips_users_button_yes_posXpath = "//*[@class='el-button el-button--default el-button--small el-button--primary operation-confirm']" # 删除提示的Tips的yes按钮,使用公共定位
listPage_dialogTips_users_button_no_posXpath = "//*[@class='el-button el-button--default el-button--small operation-cancel']" # 删除提示的Tips的cancel按钮,使用公共定位
listPage_dialogTips_users_button_close_posXpath = "//*[@class='el-message-box__close el-icon-close']" # 删除提示的Tips的close按钮,使用公共定位
# Create 和 Edit Roles 新增和编辑页
user_button_area_posXpath = "//div[contains(@class,'nav-item el-dropdown-menu__item')][{replaceIndex}]" # user块定位,nav-item el-dropdown-menu__item 选中块class包含:nav-active
# user_button_area_posXpath = "//div[contains(@class,'nav-item el-dropdown-menu__item')][normalize-space(text())='{replaceName}']" #user块定位,nav-item el-dropdown-menu__item 选中块class包含:nav-active
users_input_name_posXpath = "//*[@id='UserProfile_addUser_Home_App_anonymousComponent_account']" # Name输入框
users_input_displayName_posXpath = "//*[@id='UserProfile_addUser_Home_App_anonymousComponent_name1']" # Display Name输入框
users_radio_accountStatus_posXpath = "//div[contains(@role,'radiogroup')]//span[normalize-space(text())='{replaceName}']" # Account Status状态选择按钮
users_radio_accessLevel_posXpath = users_radio_accountStatus_posXpath # Access Level状态选择按钮
users_select_loginProfile_posXpath = "//*[@id='jobList_scheduleId']" # Login Profile选择
users_select_loginProfileSearch_posXpath = "//*[@id='profiledata']" # Login Profile选择//*[@id='profiledata']
users_select_loginProfileSelect_posXpath = "//*[@class='el-scrollbar__view el-select-dropdown__list']//li[contains(@class,'el-select-dropdown__item')]//span[normalize-space(text())='{replaceName}']" # Login Profile目标定位
users_button_del_loginProfile_posXpath = "//*[@class='el-select__caret el-input__icon el-icon-circle-close']" # Login profile选择框删除当前选择记录的按钮定位
users_input_password_posXpath = "//*[@id='authSettings_addUser_Home_App_anonymousComponent_mima']" # Password输入框
users_input_confirmPassword_posXpath = "//*[@id='authSettings_addUser_Home_App_anonymousComponent_mimaConfirm']" # Confirm Password输入框
users_bar_password_strength_posXpath = "//*[@id='pwd_form-item-_authSettings_addUser_Home_App_anonymousComponent']/div/div[3]/div/div/div" # 用户输入密码后密码强度提示条定位
users_status_twoFactor_posXpath = "//*[@id='status_form-item-_authSettings_addUser_Home_App_anonymousComponent']/div/div/i" # Two-factor Authentication Status输入框,Style:color: rgb(204, 204, 204); margin-right: 6px; font-size: 18px;
users_row_vsysAndRole_posXpath = "//*[@class='row-bg flex margin-bottom10']" # Virtual System 和Role行数样式
users_row_vsysName_posXpath = "//*[@class='row-bg flex margin-bottom10'][{replaceIndex}]//input[contains(@id,'vsys_name_user')]"
users_row_vsysRole_posXpath = "//*[@class='row-bg flex margin-bottom10'][{replaceIndex}]//input[contains(@id,'vsys_name_role')]"
# users_row_vsysAndRoleDelbyVsys_posXpath = "//*[@class='row-bg flex margin-bottom10']//input[contains(@id,'vsys_name_user') and @value='{replaceName}']/../../../..//div[contains(class,'dynamic-delete')]"
users_row_vsysRoleDelButton_posXpath = "//*[@class='row-bg flex margin-bottom10'][{replaceIndex}]//i[contains(@id,'_anonymousComponent_addUser_Home_App_anonymousComponent')]"
# Vsys Role搜索框定位://*[@class='el-select-dropdown el-popper']//input[contains(@id,'vsys_name_input')]
# 某行Virtual System Name输入框定位://*[@class="row-bg flex margin-bottom10"]//input[contains(@id,'vsys_name_user')]
# 某行Role输入框定位://*[@class="row-bg flex margin-bottom10"]//input[contains(@id,'vsys_name_role')]
# 某行删除输入框定位://*[@class="row-bg flex margin-bottom10"]//i[contains(@id,'delForm0-_anonymousComponent_add_User_Home_App_anonymousComponent')]
# users_input_vsys_posXpath = "//*[@id='vsys_name_user']" #Virtual System Name下拉选择框定位//*[@class='row-bg flex margin-bottom10']//input[@id='vsys_name_user']
users_appearance_posXpath = "//label[contains(@id,'replaceName')]" # User Appearance定位//label[contains(@id,'dark')]
# users_appearance_posXpath = "//span[@style='transform: rotate('replaceName'deg);']"#transform: rotate(0/180deg);
users_header_appearance_posXpath = "//span[@class='header-theme']" # 用户右上角的色系模式按钮定位
users_button_delVsysRole_posXpath = "//*[@id='vsys_name_role']" # 删除Vsys and Role按钮定位
users_button_addVsysRole_posXpath = "//*[@id='vsys_name_add-_anonymousComponent_addUser_Home_App_anonymousComponent']" # Vsys and Role新增输入框加号按钮定位
users_search_vsys_posXpath = "//div[contains(@style, 'position: absolute;') ]//input[@id='vsys_name_input']" # Virtual System Name下拉搜索框定位
users_search_role_posXpath = "//div[contains(@style, 'position: absolute;') ]//input[@id='role_name_input']" # Role下拉搜索框框定位
users_select_vsys_posXpath = "//div[contains(@style, 'position: absolute;') ]//span[normalize-space(text())='{replaceName}']" # Virtual System Name下拉选择目标记录定位
users_vsys_checked_position_posXpath = "//div[contains(@style, 'position: absolute;') ]//*[@class='el-select-dropdown__item selected']//span[normalize-space(text())='{replaceName}']" # 定位要修改或删除记录的Vsys记录
users_vsys_position_posXpath = "//div[contains(@style, 'position: absolute;') ]//li[contains(@id,'select_prolist')]//span[normalize-space(text())='{replaceName}']/../.." # 定位要修改或删除记录的Vsys记录的被选择表示层
users_select_role_posXpath = users_select_vsys_posXpath # Virtual System Name下拉选择目标记录定位
# Virtual System Name和Role的下拉搜索框定位有如下几种,目前使用第1种
# //div[contains(@style, 'position: absolute;') ]//input[@id='vsys_name_input']
# //div[contains(@class,'el-select-dropdown el-popper') and contains(@style, 'position: absolute;')]//input[@id='vsys_name_input']
# //div[contains(@style, 'position: absolute;') and contains(@x-placement,'bottom-start')]//input[@id='vsys_name_input']
users_input_timeZone_posXpath = "//*[@label='{replaceName}']//input" # Time Zone下拉框定位
users_select_timeZone_posXpath = loginProfiles_select_timeZone_posXpath
users_input_language_posXpath = "//*[@id='anonymousComponent_addUser_Home_App_anonymousComponent_language']" # Language下拉框定位
users_select_language_posXpath = "//*[@x-placement='bottom-start']/div/div/ul/li/span[normalize-space(text())='{replaceName}']" # "//li[contains(@class,'el-select-dropdown__item')]//span[normalize-space(text())='{replaceName}']" #Language下拉框选择定位
users_input_linesPerPage_posXpath = "//*[@id='anonymousComponent_addUser_Home_App_anonymousComponent_rowsPerPage']" # Lines per page下拉框定位
users_select_linesPerPage_posXpath = "//li[contains(@class,'el-select-dropdown__item')]//span[normalize-space(text())='{replaceName}']" # Lines per page下拉框选择定位
users_select_allowMultiSession_posXpath = "//*[@id='anonymousComponent_addUser_Home_App_anonymousComponent_allowMultiSession']/.." # Allow Multi Session开关定位
users_select_accessTokensName_posXpath = "//*[@id='accessTokens_Name1']" # Token Name输入框定位
users_btn_expiryDate_posXpath = "//*[@class='el-input__icon el-icon-time']" # Expiry Date输入窗口的时间按钮,点击打开时间选择窗口
users_input_expiryDate_date_posXpath = "//*[@class='el-date-picker__editor-wrap'][1]//input" # Expiry Date输入窗口的时间按钮,点击打开时间选择窗口后的日期输入窗口
users_input_expiryDate_time_posXpath = "//*[@class='el-date-picker__editor-wrap'][2]//input" # Expiry Date输入窗口的时间按钮,点击打开时间选择窗口后的时间输入窗口
users_button_expiryDate_ok_posXpath = "//*[@class='el-button el-picker-panel__link-btn el-button--default el-button--mini is-plain']" # Expiry Date界面的OK按钮
users_select_expiryDate_posXpath = "//*[@class='el-date-editor el-input el-input--small el-input--prefix el-input--suffix el-date-editor--datetime']/input" # Expiry Date输入框定位
users_button_expiryDate_posXpath = "//*[@class='el-date-editor el-input el-input--small el-input--prefix el-input--suffix el-date-editor--datetime']/span/i" # Expiry Date时间窗口
users_button_createTokens_posXpath = "//*[@class='el-button margin-right5 gray-btn el-button--default el-button--small btn-style']" # Create Tokens Save按钮定位
users_text_row_token_name_posXpath = "//table[@class='el-table__body']//div[contains(@class,'table-hide')][normalize-space(text())='{replaceName}']"
users_button_row_token_revoke_posXpath = "//table[@class='el-table__body']//div[contains(@class,'table-hide')][normalize-space(text())='{replaceName}']/../../../td[3]//button[1]" # token 列表Revoke按钮
users_button_row_token_delete_posXpath = "//table[@class='el-table__body']//div[contains(@class,'table-hide')][normalize-space(text())='{replaceName}']/../../../td[3]//button[2]" # token 列表Revoke按钮
users_button_oK_posXpath = "//*[@id='userOk-_addUser_Home_App_anonymousComponent']" # OK按钮id
users_button_cancel_posXpath = "//*[@id='userBack-_addUser_Home_App_anonymousComponent']" # Cancel按钮id
users_button_warningSaveYes_posCss = edit_common_button_warningSaveYes_posCss # 提示保存ok按钮警告框,使用公共定位
users_button_warningSaveCancel_posCss = edit_common_button_warningSaveCancel_posCss # 提示保存取消按钮警告框,使用公共定位
users_list_lastColumn_posXpath = "//*[@class='has-gutter']/tr[1]/th[9]" # user列表最后一列
users_list_userTitle_posXpath = "//*[@class='has-gutter']//span[normalize-space(text())='{replaceName}']/../../.." # 列表快速过滤按钮需要User列的值进行比对,该列表头定位
users_list_userColumn_posXpath = "//td[contains(@class, '{replaceName}')]//div[contains(@class,'user_name_font')]" # 列表快速过滤按钮需要User列的值进行比对,该列表记录定位
users_list_userBlockedColumn_posXpath = "//td[contains(@class, '{replaceName}')]//div[contains(@class,'user_name_font')]/../span[@class='block-tag']" # User列Blocked标签
users_text_token_name_posXpath = "//table[@class='el-table__body']//tr[{replaceIndex}]/td[1]/div/div" # token列表Token Name列
users_text_token_revoke_posXpath = "//table[@class='el-table__body']//tr[{replaceIndex}]/td[3]/div/div/button[contains(@id ,'accessToken_revoke')]" # token列表Token Revoke操作按钮
users_text_token_delete_posXpath = "//table[@class='el-table__body']//tr[{replaceIndex}]/td[3]/div/div/button[contains(@id ,'accessToken_del')]" # token列表Token Delete操作按钮
users_text_token_deletes_posXpath = "//button[contains(@id ,'accessToken_del')]" # token列表所有删除按钮
users_text_token_required_posXpath = "//*[@id='accessTokens_Name1']/../../div[@class='el-form-item__error']" # Token Name必填提示
users_list_token_row_posXpath = "//table[@class='el-table__body']//tr" # token列表行数
users_page_tabs_posXpath = "//div[contains(@class,'nav-item el-dropdown-menu__item')]" # 编辑页面tabs
users_page_tabs_title_posXpath = "//p[@class='content-title margin-bottom20']" # 编辑页面tabs title
users_page_fields_labels_posXpath = "//label[@class='el-form-item__label']" # 编辑页面属性fields label
users_page_access_level_info_posXpath = "//div[@class='accessTips']" # Access Level文本提示
users_page_password_info_posXpath = "//p[@class='pwdTips']" # Password文本提示
users_page_password_error_posXpath = "//div[@class='el-form-item__error']" # Password不符提示,Confirm Password不一致提示
users_user_name_length_posXpath = "//div[contains(@id,'account_form-item')]//div[@class='biFangNameLength-length']" # User账号长度显示
users_error_user_name_required_posXpath = "//div[contains(@id,'account_form-item')]//div[@class='el-form-item__error']" # User账号必填提示
users_user_display_name_length_posXpath = "//div[contains(@id,'name_form-item')]//div[@class='biFangNameLength-length']" # User名称长度显示
users_error_user_display_name_required_posXpath = "//div[contains(@id,'name_form-item')]//div[@class='el-form-item__error']" # User名称必填提示
users_error_token_name_required_posXpath = "//div[@class='el-form-item__error']" # token非空提示
users_error_content_posXpath = "//p[@class='el-message__content']" # User提交错误信息提示
users_error_the_same_password_posXpath = "//i[@class='el-message__icon el-icon-error']/..//p[@class='el-message__content']" # 修改密码时和旧密码一致提示信息定位
users_error_password_required_posXpath = "//*[@id='pwd_form-item-_authSettings_addUser_Home_App_anonymousComponent']//div[@class='el-form-item__error']" # 密码必填提示
users_error_confirm_password_required_posXpath = "//*[@id='mimaConfirm_form-item-_authSettings_addUser_Home_App_anonymousComponent']//div[@class='el-form-item__error']" # 密码必填提示
users_text_first_row_name_posXpath = "//tr[@class='el-table__row'][1]//span[@class='user_account_font']"
users_class_first_row_specify_column_posXpath = "//div[@class='cell']//span[normalize-space(text())='{replaceName}']/../../.." # 列表第一行指定内容列定位,用于获取该列Class
users_current_page_rows_posXpath = "//table[@class='el-table__body']//tbody//tr" # 列表当前页行数
users_tips_div_blocked_posXpath = "//div[@class='el-message-box el-message-box--center']//button[@class='el-button el-button--default el-button--small el-button--primary operation-confirm']" # block提示信息Blocked按钮
users_tips_div_cancel_posXpath = "//div[@class='el-message-box el-message-box--center']//button[@class='el-button el-button--default el-button--small operation-cancel']" # block提示信息cancel按钮
# Manage Users:Logged In Users===================Manage Users:Logged In Users====================Manage Users:Logged In Users=================Manage Users:Logged In Users=======================Manage Users:Logged In Users=======================
# Manage Users:Logged In Users 列表页
listPage_manageUsers_logged_in_users_selectLabel_posId = mainPage_common_search_selectLabel_posId # 查询框id,使用公共定位
listPage_manageUsers_logged_in_users_buttonSearch_posId = mainPage_common_search_buttonSearch_posId # 查询按钮id,使用公共定位
listPage_manageUsers_logged_in_users_buttonClear_posId = mainPage_common_search_buttonClear_posId # 清空查询按钮id,使用公共定位
listPage_manageUsers_logged_in_users_dropDown_item_posXpath = listPage_common_dropDown_item_posXpath # 下拉菜单定位,使用公共定位
listPage_manageUsers_logged_in_users_input_itemContent_posXpath = listPage_common_input_itemContent_posXpath # 输入item的值,replaceName替换实际查询值,使用公共定位
listPage_manageUsers_logged_in_users_dropDown_typeItem_posXpath = listPage_common_dropDown_typeItem_posXpath # 查询中type的下拉item定位,replaceName替换实际查询值,使用公共定位
listPage_manageUsers_logged_in_users_tableTbody_posXpath = listPage_common_tableTbody_posXpath # 列表tabel body xpath,使用公共定位
listPage_manageUsers_logged_in_users_tableHeader_posXpath = listPage_common_tableHeader_posXpath # 列表table 表头xpath,使用公共定位
logged_rows_button_disconnect_posXpath = "//span[normalize-space(text())='{replaceName}']/../../../../..//button" # 指定内容disconnect操作定位
logged_rows_button_disconnect_tips_ok_posXpath = "//button[@class='el-button el-button--default el-button--small el-button--primary operation-confirm']" # disconnect点击提示页面OK按钮
logged_rows_button_disconnect_tips_cancel_posXpath = "//button[@class='el-button el-button--default el-button--small operation-cancel']"
logged_rows_text_disconnect_tips_content_posXpath = "//div[@class='el-message-box__message']/p" # disconnect点击提示信息内容
logged_text_first_row_Last_Activity_posXpath = "//div[@class='el-table__body-wrapper is-scrolling-none']//tr[1]/td[4]//span[@class='el-tooltip item']"
loggin_in_user_text_first_row_login_time_posXpath = "//div[@class='el-table__body-wrapper is-scrolling-none']//tr[1]/td[3]//span[@class='el-tooltip item']"
login_page_element_posXpath = "//div[@class='login-input']" # 系统登录界面元素定位
loginlogs_text_first_row_name_posXpath = "//*[@class='el-table__body-wrapper is-scrolling-none']//tr[1]//span[@class='el-tooltip item']" # 第一行记录name内容定位
# Server Profiles:LDAP Servers===================Server Profiles:LDAP Servers====================Server Profiles:LDAP Servers=================Server Profiles:LDAP Servers=======================Server Profiles:LDAP Servers=======================
# Server Profiles:LDAP Servers 列表页
listPage_serverProfiles_ldapServers_createButton_posXpath = "//*[@id='ldapAdd']" # Create按钮
listPage_serverProfiles_ldapServers_editButton_posXpath = "//*[@id='ldapEdit']" # Edit按钮
listPage_serverProfiles_ldapServers_deleteButton_posXpath = "//*[@id='ldapDel']" # Delete按钮
listPage_serverProfiles_ldapServers_selectLabel_posId = mainPage_common_search_selectLabel_posId # 查询框id,使用公共定位
listPage_serverProfiles_ldapServers_buttonSearch_posId = mainPage_common_search_buttonSearch_posId # 查询按钮id,使用公共定位
listPage_serverProfiles_ldapServers_buttonClear_posId = mainPage_common_search_buttonClear_posId # 清空查询按钮id,使用公共定位
listPage_serverProfiles_ldapServers_dropDown_item_posXpath = listPage_common_dropDown_item_posXpath # 下拉菜单定位,使用公共定位
listPage_serverProfiles_ldapServers_input_itemContent_posXpath = listPage_common_input_itemContent_posXpath # 输入item的值,replaceName替换实际查询值,使用公共定位
listPage_serverProfiles_ldapServers_dropDown_typeItem_posXpath = listPage_common_dropDown_typeItem_posXpath # 查询中type的下拉item定位,replaceName替换实际查询值,使用公共定位
listPage_serverProfiles_ldapServers_tableTbody_posXpath = listPage_common_tableTbody_posXpath # 列表tabel body xpath,使用公共定位
listPage_serverProfiles_ldapServers_tableHeader_posXpath = listPage_common_tableHeader_posXpath # 列表table 表头xpath,使用公共定位
listPage_serverProfiles_ldapServers_specify_column = "//div[@class='operation textLeft']//span[normalize-space(text())='{replaceName}']/../../../.." # 批量删除参照列
# listPage->Tips dialog 列表页 tips对话框
listPage_dialogTips_ldapServers_button_yes_posXpath = "//*[@class='el-button el-button--default el-button--small el-button--primary operation-confirm']" # 删除提示的Tips的yes按钮
listPage_dialogTips_ldapServers_button_no_posXpath = "//*[@class='el-button el-button--default el-button--small operation-cancel']" # 删除提示的Tips的cancel按钮
listPage_dialogTips_ldapServers_button_close_posXpath = "//*[@class='el-message-box__close el-icon-close']" # 删除提示的Tips的close按钮
# Create 和 Edit LDAP Servers 新增和编辑页
ldapServers_title_posXpath = "//div[@class='prox-fixed-header']" # 新增修改界面title信息定位
ldapservers_fields_text_posXpath = "//label[@class='el-form-item__label']" # 新增修改界面各个属性文本定位
ldapServers_input_name_posXpath = "//*[@id='ldapName']" # Name输入框
ldapServers_input_name_error_posXpath = "//label[@for='name']/../div/div[@class='el-form-item__error']"
ldapServers_input_host_posXpath = "//*[@id='host']" # host输入框
ldapServers_input_host_error_posXpath = "//label[@for='host']/../div/div[@class='el-form-item__error']"
ldapServers_input_port_posXpath = "//*[@id='port']" # port输入框
ldapServers_input_port_error_posXpath = "//label[@for='port']/../div/div[@class='el-form-item__error']"
ldapServers_input_userName_posXpath = "//*[@id='username']" # port输入框
ldapServers_input_user_name_error_posXpath = "//label[@for='username']/../div/div[@class='el-form-item__error']"
ldapservers_rows_userMapper_posXpath = "//*[@class = 'el-form-item addInput positionRelative is-no-asterisk el-form-item--small']" # 当前 User Mapper行数
ldapservers_add_userMapper_posXpath = "//i[contains(@id,'ldaoAddUserMapperAdd')]" # 当前 User Mapper行数
ldapServers_input_prefix_posXpath = "//*[@class='el-form-item addInput positionRelative is-no-asterisk el-form-item--small'][{replaceIndex}]//input[contains(@id,'ldap_form_left_input')]" # prefix输入框
ldapServers_input_suffix_posXpath = "//*[@class='el-form-item addInput positionRelative is-no-asterisk el-form-item--small'][{replaceIndex}]//input[contains(@id,'ldap_form_right_input')]" # suffix输入框
ldapServers_button_addUserMapper_posXpath = "//*[@class='el-form-item addInput positionRelative is-no-asterisk el-form-item--small'][{replaceIndex}]//i[contains(@id,'ldaoAddUserMapperAdd')]" # 添加User Mapper输入框
ldapServers_button_add_user_mapper_text_posXpath = "//div[@class='el-form-item addInput positionRelative is-no-asterisk el-form-item--small']//label[@class='el-form-item__label']" # 添加User Mapper输入框
ldapServers_button_delUserMapper_posXpath = "//*[@class='el-form-item addInput positionRelative is-no-asterisk el-form-item--small'][{replaceIndex}]//i[contains(@id,'ldaoAddUserMapperDel')]" # 删除User Mapper输入框
ldapServers_input_password_posXpath = "//*[@id='mima_add_LDAP_Server_Home_App_anonymousComponent']" # password输入框
ldapServers_radio_enable_posXpath = "//*[@id='enable']/.." # Enable按钮定位
ldapServers_input_connTimeout_posXpath = "//*[@id='conn_timeout']" # Enable按钮定位
ldapServers_input_connTimeout_error_posXpath = "//label[@for='conn_timeout']/../div/div[@class='el-form-item__error']"
ldapServers_button_oK_posXpath = "//*[@id='ldapAddSuccess']" # OK按钮idldap
ldapServers_button_testConnection_posXpath = "//*[@id='ldapTestConnection']" # Test Connection'按钮id
ldapServers_button_test_connection_text_posXpath = "//*[@id='ldapTestConnection']/span" # Test Connection'按钮文本定位
ldapServers_button_cancel_posXpath = "//*[@id='ldapCancel']" # Cancel按钮id
ldapServers_button_warningSaveYes_posCss = edit_common_button_warningSaveYes_posCss # 提示保存ok按钮警告框,使用公共定位
ldapServers_button_warningSaveCancel_posCss = edit_common_button_warningSaveCancel_posCss # 提示保存取消按钮警告框,使用公共定位
ldapServers_text_first_row_id_posXpath = "//table[@class='el-table__body']//tr[1]//span[@class='bfId']" # 首行ID内容定位
current_checked_page_no = "//li[@class='number active']" # 当前选中页
first_page_number = "//li[@class ='number'][1]" # 第一页
# Server Profiles:Mail Server===================Server Profiles:Mail Server====================Server Profiles:Mail Server=================Server Profiles:Mail Server=======================Server Profiles:Mail Server=======================
# Create 和 Edit Mail Server 新增和编辑页
mailServer_title_posXpath = "//div[@class='prox-fixed-header']" # 新增修改界面title信息定位
mailServer_input_server_posXpath = "//*[@id='server']" # server输入框
mailServer_input_port_posXpath = "//*[@id='port']" # port输入框
mailServer_input_isValidate_posXpath = "//*[@id='mailServerIsValidate']/.." # Need Authentication输入框
mailServer_input_name_posXpath = "//*[@id='userName_mail_server_Home_App_anonymousComponent']" # Name输入框
mailServer_input_email_posXpath = "//*[@id='account_mail_server_Home_App_anonymousComponent']" # E-Mail输入框
mailServer_input_password_posXpath = "//*[@id='mima_mail_server_Home_App_anonymousComponent']" # password输入框
mailServer_radio_isSSL_posXpath = "//*[@id='mailServerIsSSL']/.." # Enable按钮定位
mailServer_button_oK_posXpath = "//*[@id='mailServerOk']" # OK按钮定位
mailServer_text_server_error_posXpath = "//*[@for='server']/..//div[@class='el-form-item__error']" # Server错误提示
mailServer_text_port_error_posXpath = "//*[@for='port']/..//div[@class='el-form-item__error']" # Port错误提示
mailServer_text_userName_error_posXpath = "//*[@class='biFangName']/..//div[@class='el-form-item__error']" # userName错误提示
mailServer_text_eMail_error_posXpath = "//*[@for='account']/..//div[@class='el-form-item__error']" # Email错误提示
mailServer_text_passowrd_error_posXpath = "//*[@for='password']/..//div[@class='el-form-item__error']" # Email错误提示
mailServer_text_success_posXpath = "//*[@role='alert']//p[@class='el-message__content']" # OK提交信息成功提示:Success
mailServer_fields_text_posXpath = "//label[@class='el-form-item__label']" # 新增修改界面各个属性文本定位
mailServer_input_name_error_posXpath = "//label[@for='{replaceName}']/../div/div[@class='el-form-item__error']"
# Virtual Systems===================Virtual Systems====================Virtual Systems=================Virtual Systems=======================Virtual Systems=======================
# Virtual Systems 列表页
listPage_virtualSystems_createButton_posXpath = "//*[@id='app_create-_OperateBtns_ElRow_system_VirtualSystem_Home_App_anonymousComponent']" # create按钮id
listPage_virtualSystems_editButton_posXpath = "//*[@id='appEdit-_OperateBtns_ElRow_system_VirtualSystem_Home_App_anonymousComponent']" # edit按钮id
listPage_virtualSystems_delButton_posXpath = "//*[@id='appDel-_OperateBtns_ElRow_system_VirtualSystem_Home_App_anonymousComponent']" # del按钮id
listPage_virtualSystems_selectLabel_posId = mainPage_common_search_selectLabel_posId # 查询框id,使用公共定位
listPage_virtualSystems_buttonSearch_posId = mainPage_common_search_buttonSearch_posId # 查询按钮id,使用公共定位
listPage_virtualSystems_buttonClear_posId = mainPage_common_search_buttonClear_posId # 清空查询按钮id,使用公共定位
listPage_virtualSystems_dropDown_item_posXpath = listPage_common_dropDown_item_posXpath # 下拉菜单定位,使用公共定位
listPage_virtualSystems_input_itemContent_posXpath = listPage_common_input_itemContent_posXpath # 输入item的值,replaceName替换实际查询值,使用公共定位
listPage_virtualSystems_dropDown_typeItem_posXpath = listPage_common_dropDown_typeItem_posXpath # 查询中type的下拉item定位,replaceName替换实际查询值,使用公共定位
listPage_virtualSystems_tableTbody_posXpath = listPage_common_tableTbody_posXpath # 列表tabel body xpath,使用公共定位
listPage_virtualSystems_tableHeader_posXpath = listPage_common_tableHeader_posXpath # 列表table 表头xpath,使用公共定位
listPage_virtualSystems_first_row_create_time_posXpath = "//table[@class='el-table__body']/tbody/tr[1]/td[4]//div[@class='operation textLeft']//span" # Virtual Systems List列表首行創建時間,翻頁后和上頁不同,用以判定翻頁是否生效
# listPage->Tips dialog 列表页 tips对话框
listPage_dialogTips_virtualSystems_button_yes_posCss = listPage_common_button_yes_posCss # 删除提示的Tips的yes按钮,使用公共定位
listPage_dialogTips_virtualSystems_button_no_posCss = listPage_common_button_no_posCss # 删除提示的Tips的close按钮,使用公共定位
# Create 和 Edit Virtual Systems 新增和编辑页
virtualSystems_input_name_posXpath = "//*[@id='virtual-name1']" # Name输入框
virtualSystems_radio_typeTraffic_posXpath = "//*[@id='vsys0-_system_VirtualSystem_edit_Home_App_anonymousComponent']" # Type选项:Traffic Vsys
virtualSystems_radio_typeManagement_posXpath = "//*[@id='vsys1-_system_VirtualSystem_edit_Home_App_anonymousComponent']" # Type选项:Management Vsys
virtualSystems_button_add_classificationRules_posXpath = "//*[@id='temporary_form']" # Classification Rules:+按钮,点击添加rules输入行
virtualSystems_select_ruleType_posXpath = "//*[@class='list-item']//input[@readonly='readonly']" # Rule Type选择框
virtualSystems_select_targetType_posXpath = "//li/span[normalize-space(text())='{replaceName}']" # Rule Type选项
virtualSystems_input_sip_classificationRules_posXpath = "//*[@class='list-item']//input[contains(@id,'object_sip')]" # 指定行Classification Rules,IP类型Rule的Source IP输入框
virtualSystems_input_dip_classificationRules_posXpath = "//*[@class='list-item']//input[contains(@id,'object_dip')]" # 指定行Classification Rules,IP类型Rule的Destination IP输入框
virtualSystems_text_sip_classificationRules_posXpath = "//*[@id='object_sip_0']" # 已有Classification Rules,IP类型Rule的Source IP列表
virtualSystems_text_dip_classificationRules_posXpath = "//*[@id='object_dip_0']" # 已有Classification Rules,IP类型Rule的Destination IP列表
virtualSystems_button_edit_classificationRules_posXpath = "//*[@class='list-item'][{replaceIndex}]//i[contains(@class,'iconfont icon-Edit')]" # 指定行的Edit按钮
virtualSystems_button_save_classificationRules_posXpath = "//*[@class='list-item']//i[@class='iconfont icon-save check' and not(@style='display: none;')]" # 指定行的Save按钮
virtualSystems_button_save_classificationRulesTipsOK_posXpath = "//*[@class='el-button el-button--default el-button--small el-button--primary ']/span" # 指定行的Save按钮
virtualSystems_button_delete_classificationRules_posXpath = "//*[@class='list-item'][{replaceIndex}]//i[@class='iconfont icon-Delete_X']" # 指定行的Delete按钮
# //*[@class='list-item']//i[@id='object_editForm_{replaceIndex}']
virtualSystems_search_classificationRules_posXpath = "//*[@id='object_ip_search']" # Name输入框Classification Rules列表搜索输入框
virtualSystems_button_add_deviceGroup_posXpath = "//*[@class='addobject width300px addobject-long-list obj-content-null cursorPointer borderColor']" # Device Group按钮,点击打开Device Group侧滑选择界面
virtualSystems_button_first_row_edit_posXpath = "//i[@class='row-edit iconfont icon-Edit']" # 编辑界面,如果有Device Group,点击第一行的编辑按钮打开编辑侧滑页码
virtualSystems_button_append_deviceGroup_posXpath = "//div[@class='add']/i[@class='iconfont icon-Create1 cursor']" # 修改界面如果已有DeviceGroup的按钮
virtualSystems_deviceGroup_button_ok_posXpath = "//*[@id='proxyManipulationConditionsAreaSuccess']" # 打开Device Group选择界面的OK按钮
virtualSystems_deviceGroup_button_cancel_posXpath = "//*[@id='proxyManipulationConditionsAreaCancel']" # 打开Device Group选择界面的Cancel按钮
virtualSystems_deviceGroup_button_close_posXpath = "//*[@class='iconfont icon-Clear_aNormal floatright cursorPointer']" # 打开Device Group选择界面的右上角的Close按钮
virtualSystems_deviceGroup_text_posXpath = "//h4[contains(text(),'{replaceTitle}')]/..//span[@class='el-checkbox__label'][normalize-space(text())='{replaceName}']/.." # 包含指定文本的Data Center选项
virtualSystems_deviceGroup_selectedText_posXpath = "//h4[contains(text(),'{replaceTitle}')]/..//li[contains(style,'')][normalize-space(text())='{replaceName}']" # 包含指定文本的Data Center已选择项,在已选择列表
# virtualSystems_deviceGroup_text_dataCenter_posXpath = "//h4[contains(text(),'{replaceTitle}')]/..//span[@class='el-checkbox__label'][normalize-space(text())='{replaceName}']" #包含指定文本的Data Center选项
# virtualSystems_deviceGroup_text_dataCenter_status_posXpath = "//h4[contains(text(),'Data Center')]/..//span[@class='el-checkbox__label'][normalize-space(text())='{replaceName}']/.." #包含指定文本的Data Center选项对应选中状态
# virtualSystems_deviceGroup_selectedText_dataCenter_posXpath = "//h4[contains(text(),'Data Center')]/..//li[contains(style,'')][normalize-space(text())='{replaceName}']" #包含指定文本的Data Center已选择项,在已选择列表
virtualSystems_deviceGroup_selectedTextStyle_dataCenter_posXpath = "//h4[contains(text(),'{replaceTitle}')]/..//div[@class='list-menu']//span[normalize-space(text())='{replaceName}']/.." # 包含指定文本的Data Center已选择项样式
virtualSystems_button_subordinates_posXpath = "//*[@id='interceptionadd_source-_source_component_ElForm_system_VirtualSystem_edit_Home_App_anonymousComponent']" # 打开Vsys选择侧滑列表页按钮
virtualSystems_button_subordinatesSearch_posXpath = "//*[@id='objectName_seach-_objectList_component_system_VirtualSystem_edit_Home_App_anonymousComponent']" # 打开Vsys选择侧滑搜索框
virtualSystems_button_subordinatesTargetText_posXpath = "//div[@role='group']//li//span[@class='three-row fontsize14'][normalize-space(text())='{replaceName}']" # 目标Vsys
virtualSystems_button_subordinatesTargetStyle_posXpath = "//div[@role='group']//li//span[@class='three-row fontsize14'][normalize-space(text())='{replaceName}']/../.." # 目标Vsys样式
virtualSystems_button_subordinatesClose_posXpath = "//*[@id='interceptionadd_allcancelobjec8tSubordinates']" # Vsys侧滑关闭按钮
virtualSystems_deviceGroup_text_deviceGroup_posXpath = "//h4[contains(text(),'Data Center')]/..//span[@class='el-checkbox__label'][normalize-space(text())='{replaceName}']" # 包含指定文本的Device Group选项
virtualSystems_deviceGroup_text_deviceGroup_status_posXpath = "//h4[contains(text(),'Data Center')]/..//span[@class='el-checkbox__label'][normalize-space(text())='{replaceName}']/.." # 包含指定文本的Device Group选项对应选中状态
# virtualSystems_deviceGroup_selectedText_deviceGroup_posXpath = "//h4[contains(text(),'Device Group')]/..//li[contains(style,'')][normalize-space(text())='{replaceName}']" #包含指定文本的Device Group已选择项,在已选择列表\
virtualSystems_button_sessionRecord_posXpath = "//input[@id='vsys_session_record']/.." # Session Records开关按钮
virtualSystems_button_supervisorMode_posXpath = "//*[@id='proxyduplicatedPacket1']/.." # Supervisor Mode开关按钮
virtualSystems_button_resourceLimits_posXpath = "//*[@id='tab-first']" # Resource Limits Tab按钮
virtualSystems_button_authorizedUsers_posXpath = "//*[@id='tab-second']" # Authorized Users Tab按钮
virtualSystems_input_proxy_posXpath = "//*[contains(@id,'virtual-Proxy')]/div/input" # Resource Limits-OS Quota-Proxy占比输入框
virtualSystems_input_firewall_posXpath = "//*[contains(@id,'virtual-Firewall')]/div/input" # Resource Limits-OS Quota-Firewall占比输入框
virtualSystems_input_total_posXpath = "//*[contains(@id,'virtual-Total')]/div/input" # Resource Limits-OS Quota-Vsys整体占比输入框
virtualSystems_row_userRole_posXpath = "//*[@class='row-bg el-row el-row--flex']" # userRole行数
virtualSystems_button_add_userRole_posXpath = "//*[@id='vsys_name_add-_anonymousComponent_ElTabPane_ElTabs_ElForm_system_VirtualSystem_edit_Home_App_anonymousComponent']" # Authorized Users-User新曾记录输入框按钮
virtualSystems_input_user_posXpath = "//*[@class='row-bg el-row el-row--flex']//input[@id='vsys_name_user']" # Authorized Users-User选择输入框
virtualSystems_input_role_posXpath = "//*[@class='row-bg el-row el-row--flex']//input[@id='vsys_name_role']" # Authorized Users-Role选择输入框
virtualSystems_input_search_userRole_posXpath = "//*[@class='el-select-dropdown el-popper'][contains(@style,'position: absolute;')]//*[@class='rm-search margin-bottom10']//input" # 用户搜索框
virtualSystems_text_check_userRole_posXpath = "//*[@class='el-select-dropdown el-popper'][contains(@style,'position: absolute;')]//span[normalize-space(text())='{replaceName}']" # 目标用户
virtualSystems_button_delUserRole_posXpath = "//*[@class='row-bg el-row el-row--flex']//i[contains(@id,'delForm')]" # Authorized Users-Role删除-Delete按钮
virtualSystems_page_button_posXpath = "//*[@class='el-pager']//li[contains(@class,'number')]" # Authorized Users翻页页码定位
virtualSystems_button_oK_posXpath = "//*[@id='virtual-subForm-_system_VirtualSystem_edit_Home_App_anonymousComponent']" # OK按钮定位
virtualSystems_button_Cancel_posXpath = "//*[@id='virtual-cancel-_system_VirtualSystem_edit_Home_App_anonymousComponent']" # Cancel按钮定位
virtualSystems_list_lastColumn_posXpath = "//*[@class='has-gutter']/tr[1]/th[11]" # Virtual System列表最后一列
virtualSystems_list_scoll_posXpath = "//*[@class='el-table__body-wrapper is-scrolling-right']"
logUsage_button_setting_posXpath = "//*[@id='setting']"
# Log Settings===================Log Settings====================Log Settings=================Log Settings=======================Log Settings=======================
# Log Settings 查看和编辑页
# 页面title
logSettings_text_title_posXpath = "//*[@class='panel-header']"
# Global Setting
logSettings_text_global_setting_posXpath = "//*[@class='dividing-line margin-bottom20 storage_title']"
# Warning
logSettings_text_warning_posXpath = "//*[@class='inlineBlock margin-left10 waring']"
# I understand the risks
logSettings_button_global_setting_posXpath = "//*[@class='el-checkbox__label']"
# 修改承诺
logSettings_radio_modify_posXpath = "//*[@class='el-checkbox__original']"
# Max Days
logSettings_text_maxDays_posXpath = "//*[@class='storageDays_title']"
# Manage Data
logSettings_text_manageData_posXpath = "//*[@class='storageDays_title']"
# Max Days and Manage Data
logSettings_text_logHandle_posXpath = "//*[@class='el-form-item__label']"
# Files留存天数输入框Files
logSettings_input_files_posXpath = "//*[@id='Files']"
# Metrics留存天数输入框Metrics
logSettings_input_metrics_posXpath = "//*[@id='Metrics']"
# Traffic Logs留存天数输入框Traffic Logs
logSettings_input_trafficLogs_posXpath = "//*[@id='Traffic Logs']"
# Files日志文件清理按钮
logSettings_button_files_posXpath = "//*[@id='storage_delete0']"
# Metrics日志清理按钮
logSettings_button_metrics_posXpath = "//*[@id='storage_delete1']"
# Traffic Logs日志清理按钮
logSettings_button_trafficLogs_posXpath = "//*[@id='storage_delete2']"
# All Logs日志清理按钮
logSettings_button_allLogs_posXpath = "//*[@id='storage_deleteAll']"
# All Logs日志存储设置恢复系统默认按钮:Reset to default
logSettings_button_resetSetingsfiles_posXpath = "//*[@class='el-button btn-style cursorPointer VButton el-button--default el-button--small is-disabled']"
# Logs日志存储修改存储按钮
logSettings_button_OK_posXpath = "//*[@id='OK-_LogSetting_Home_App_anonymousComponent']"
# Logs日志修改取消按钮
logSettings_button_Cancel_posXpath = "//*[@id='Cancle-_LogSetting_Home_App_anonymousComponent']"
# System Appearance===================System Appearance====================System Appearance=================System Appearance=======================System Appearance=======================
System_Appearance_Header_logo_upload_Xpath = '(//*[@class="el-upload el-upload--text"]/input)[1]' # Header Logo 的Please Upload按钮
System_Appearance_OK_Xpath = '//*[@id="userOk-_SystemAppearance_Home_App_anonymousComponent"]' # System_Appearance页面的OK按钮
System_Appearance_Header_logo_Reset_to_Default_Xpath = '(//*[@id="reset-_SystemAppearance_Home_App_anonymousComponent"])[1]' # Header Logo的reset按钮
System_Appearance_Title_input_Xpath = '//*[@id="name"]' # 修改Title的输入框
System_Appearance_Favicon_Reset_to_Default_Xpath = '//*[@id="favreset-_SystemAppearance_Home_App_anonymousComponent"]' # 还原Favicon按钮
System_Appearance_Favicon_Upload_Xpath = '(//*[@class="el-upload el-upload--text"]/input)[2]' # 上传Favicon图片路径
System_Appearance_Login_Logo_Upload_Xpath = '(//*[@class="el-upload el-upload--text"]/input)[3]' # 上传Login_Logo图片路径
System_Appearance_xiala = '(//*[@class="el-input el-input--small el-input--suffix"])[1]' # 下拉按钮
System_Appearance_Change_zhongwen_Language_Xpath = '(//div[@class="el-scrollbar"]//span[text()="简体中文"])[2]' # 选择默认语言中文路径
System_Appearance_Change_eyu_Language_Xpath = '(//div[@class="el-scrollbar"]//span[text()="Русский"])[2]' # 选择默认语言俄语路径
System_Appearance_Change_English_Language_Xpath = '(//div[@class="el-scrollbar"]//span[text()="English"])[2]' # 选择默认语言英语路径
System_Appearance_Time_xiala = '(//*[@class="el-input el-input--small el-input--suffix"])[2]' # 下拉默认时区路径
System_Appearance_Time_xiala_input = '//*[@class="el-input el-input--small el-input--suffix is-focus"]/input'
System_Appearance_Logo_img_Xpath = '//label[@for="login_logo"]/..//div[@class="el-image tsg-image"]/img' # 编辑页面的logo图片定位
Time_Zone_Seoul = '//div/span[text()="Asia/Seoul"]'
Time_Zone_Sakhalin = '//div/span[text()="Asia/Sakhalin"]'
Time_Zone_Qyzylorda = '//div/span[text()="Asia/Qyzylorda"]'
Time_Zone_Shanghai = '//div/span[text()="Asia/Shanghai"]'
Time_Zone_Pontianak = '//div/span[text()="Asia/Pontianak"]'
Time_Zone_McMurdo = '//div/span[text()="Antarctica/McMurdo"]'
select_seoul_button = '//span[contains(.,"Asia/Seoul")]'
select_Sakhalin_button = '//span[contains(.,"Asia/Sakhalin")]'
select_Qyzylorda_button = '//span[contains(.,"Asia/Qyzylorda")]'
select_Shanghai_button = '//span[contains(.,"Asia/Shanghai")]'
select_Pontianak_button = '//span[contains(.,"Asia/Pontianak")]'
select_McMurdo_button = '//span[contains(.,"Antarctica/McMurdo")]'
header_logo_upload_css = '#router-view-container > div > div.policy-style-newadd.prox-fixed-add.paper-grid > form > div.fixed-small-container > div.el-form-item.is-required.is-no-asterisk.el-form-item--small > div > div.VUpload.logo-upload'
favicon_upload_css = '#upload_file-_SystemAppearance_Home_App_anonymousComponent > div > div.VUpload'
login_logo_reset_default = '(//*[@id="reset-_SystemAppearance_Home_App_anonymousComponent"])[2]'
login_user_input_content = '//*[@id="app"]//input[@name="username"]'
login_pwd_input_content = '//*[@id="app"]//input[@name="password"]'
# System Updates===================System Updates====================System Updates=================System Updates=======================System Updates=======================
Syetem_Updates_search = '//*[@id="select-label"]' # 搜索框路径
System_Updates_search_filename = '//*[@id="fileName"]//input' # filename搜索框路径2
System_Updates_search_button = '//*[@id="searchQuery"]' # 搜索按钮
System_Updates_search_version = '//*[@id="version"]//input' # version搜索框路径
Syetem_Updates_search_File_Name = '//*[@id="2-_FilteredSearch_SystemUpdates_Home_App_anonymousComponent"]/span[text()="File Name"]' # Filename搜索方式路径
Syetem_Updates_Version_menu = '//*[@id="3-_FilteredSearch_SystemUpdates_Home_App_anonymousComponent"]/span[text()="Version"]' # 第一次Version搜索方式路径
Sytem_Updates_upload_Button = '//*[@id="import-_ImportAndExport_FileOperator_SystemUpdates_Home_App_anonymousComponent"]/i' # 上传按钮
Sytem_Updates_xiala_Button = '(//*[@class="edit-height"]//input[@class="el-input__inner"])[1]' # 下拉选择Type按钮
Sytem_Updates_Select_App = '//*[@class="el-scrollbar__view el-select-dropdown__list"]//span[text()="AppSketch DB"]'
Sytem_Updates_upload_app = '//*[@class="el-upload el-upload--text"]/input' # 上传app sketch
Sytem_Updates_Select_Web = '//*[@class="el-scrollbar__view el-select-dropdown__list"]//span[text()="WebSketch DB"]'
Sytem_Updates_Select_Geo = '//*[@class="el-scrollbar__view el-select-dropdown__list"]//span[text()="Maxmind GeoIP2"]'
Sytem_Updates_upload_OK = '(//*[@class="el-form-item__content"])[3]//span' # OK按钮
Sytem_Updates_set = '//*[@id="eventfixed"]/i' # 设置按钮
Sytem_Updates_set_All = '(//*[@class="el-checkbox__input"])[8]/span' # 全选按钮
Sytem_Updates_set_Cancel = '(//*[@class="el-checkbox__input is-checked"])[8]/span' # 取消按钮
Sytem_Updates_set_Select_OK = '//*[@id="dropColOK-_ElementSet_SystemUpdates_Home_App_anonymousComponent"]/span' # Select下的OK按钮
Sytem_Updates_set_Select_Cancel = '//*[@id="dropColcancel-_ElementSet_SystemUpdates_Home_App_anonymousComponent"]' # Select下的取消按钮
System_Updates_File_Size = '//*[@class="col-choose open"]//span[contains(text(),"File Size")]' # File Size
System_Updates_File_Sha1 = '//*[@class="col-choose open"]//span[contains(text(),"File SHA1")]'
System_Updates_Update_Date = '//*[@class="col-choose open"]//span[contains(text(),"Update Date")]'
System_Updates_Upload_Date = '//*[@class="col-choose open"]//span[contains(text(),"Upload Date")]'
System_Updates_Operator = '//*[@class="col-choose open"]//span[contains(text(),"Operator")]'
System_Updates_Action = '//*[@class="col-choose open"]//span[contains(text(),"Action")]'
System_Updates_Release_Notes = '//*[@class="col-choose open"]//span[contains(text(),"Release Notes")]'
System_Updates_page = '//*[@id="pagination-_pagination_SystemUpdates_Home_App_anonymousComponent"]//li[{}]' # 翻页页码Xpath
System_Updates_Next_page = '//*[@id="pagination-_pagination_SystemUpdates_Home_App_anonymousComponent"]//button[2]' # 下一页
System_Updates_previous_page = '//*[@id="pagination-_pagination_SystemUpdates_Home_App_anonymousComponent"]//button[1]' # 上一页
System_Updates_page_input = '//*[@id="pagination-_pagination_SystemUpdates_Home_App_anonymousComponent"]//input' # 页码输入框
System_Updates_Goto = '//*[@id="pagination-_pagination_SystemUpdates_Home_App_anonymousComponent"]//span[2]' # 跳转路径
System_Updates_File_name = '((//*[@class="el-table__row"])[1]//p[@class="text-content text"])[2]' # 页面File Name路径
System_Updates_Version = '((//*[@class="el-table__row"])[1]//p[@class="text-content text"])[3]' # 页面Version列路径
System_Updates_column = '//*[@id="ly-table1-listcontent"]//thead/tr/th[{}]/div/div/span[1]'
System_Updates_Action_first = '(//button[@class="el-button actoin-btn el-button--text el-button--small"]/span)[1]'
# System Assessment===================System Assessment====================System Assessment=================System Assessment=======================System Assessment=======================
System_Assessment_search_input = '//*[@id="select-label"]' # 搜索框路径
System_Assessment_filename = '//*[@id="999-_FilteredSearch_ElCol_ElRow_VPanel_web_sketch_assessment_Home_App_anonymousComponent"]/span' # filename搜索方式
System_Assessment_content_input = '//*[@id="file_name"]//input' # 输入内容搜索框路径
System_Assessment_search_button = '//*[@id="searchQuery"]' # 搜索按钮路径
System_Assessment_select_set = '//*[@class="iconfont icon-SetNormal setting-icon el-popover__reference"]' # 设置按钮
System_Assessment_cancel = '(//*[@class="el-checkbox is-checked"]//span[@class="el-checkbox__inner"])[5]' # 取消所有勾选按钮
System_Assessment_File_Name = '//thead[@class="has-gutter"]/tr/th/div[text()="File Name"]'
System_Assessment_Size = '//*[@class="col-choose open"]//span[contains(text(),"Size")]'
System_Assessment_SHA256 = '//*[@class="col-choose open"]//span[contains(text(),"SHA256")]'
System_Assessment_Assessment_Time = '//*[@class="col-choose open"]//span[contains(text(),"Assessment Time")]'
System_Assessment_Assessment_File = '//*[@class="col-choose open"]//span[contains(text(),"Assessment File")]'
System_Assessment_OK = '//*[@id="dropColOK-_anonymousComponent_ElPopover_ElTableHeader_ElTable_VTable_VPanel_web_sketch_assessment_Home_App_anonymousComponent"]/span' # 确定OK按钮
System_Assessment_All = '(//*[@class="el-checkbox__input"]//span[@class="el-checkbox__inner"])[5]' # 全部选中按钮
System_Assessment_coloum_new = '//*[@class="has-gutter"]//th[{}]/div' # 自定义列第一列的路径
System_Assessment_page_li = '//*[@id="pagination-_pagination_VTable_VPanel_web_sketch_assessment_Home_App_anonymousComponent"]//li[{}]' # 翻页
System_Assessment_next_page = '//*[@id="pagination-_pagination_VTable_VPanel_web_sketch_assessment_Home_App_anonymousComponent"]//button[2]' # 下一页
System_Assessment_previous_page = '//*[@id="pagination-_pagination_VTable_VPanel_web_sketch_assessment_Home_App_anonymousComponent"]//button[1]' # 上一页
System_Assessment_page_input = '//*[@id="pagination-_pagination_VTable_VPanel_web_sketch_assessment_Home_App_anonymousComponent"]//input' # 页码输入
System_Assessment_down_button = '(//*[@class="el-table__row"])[{}]//button' # 下载按钮
System_Assessment_filename_coloum = '//tr[contains(@class,"el-table__row")][{}]/td[3]//span' # '(//*[@class="el-table__row"])[{}]/td[3]//span' #filename下的文件名
System_Assessment_file_row = '//tr[contains(@class,"el-table__row")]' # 列表记录数,因为存在0条记录和1条记录的特殊清空
System_Assessment_select_column = '//*[@class="col-choose open"]/li[{}]/span' # 列设置下的列元素
System_Assessment_search_type_first = '//*[@id="-1-_FilteredSearch_ElCol_ElRow_VPanel_web_sketch_assessment_Home_App_anonymousComponent"]/span'
System_Assessment_select_cancel = '//*[@id="dropColcancel-_anonymousComponent_ElPopover_ElTableHeader_ElTable_VTable_VPanel_web_sketch_assessment_Home_App_anonymousComponent"]/span'
##############################################################################Admin Logs ###################################################################################
Admin_Logs_Search = '//*[@id="select-label"]' # 输入框路径
Admin_Logs_Search_Target_ID = '//*[@id="1-_FilteredSearch_ElRow_system_PolicyConfigurationLog_Home_App_anonymousComponent"]/span' # Targetid
Admin_Logs_Search_Source = '//*[@id="6-_FilteredSearch_ElRow_system_PolicyConfigurationLog_Home_App_anonymousComponent"]/span' # Source
Admin_Logs_Search_User_Name = '//*[@id="3-_FilteredSearch_ElRow_system_PolicyConfigurationLog_Home_App_anonymousComponent"]/span' # Username
Admin_Logs_Search_Operation = '//*[@id="7-_FilteredSearch_ElRow_system_PolicyConfigurationLog_Home_App_anonymousComponent"]/span' # Operation
Admin_Logs_Search_Target_Type = '//*[@id="30-_FilteredSearch_ElRow_system_PolicyConfigurationLog_Home_App_anonymousComponent"]/span' # Target Type
Admin_Logs_Search_Target_ID_Input = '//*[@id="id"]//input' # id输入框
Admin_Logs_Search_User_Name_Input = '//*[@id="userId"]//input'
Admin_Logs_Search_User_Name_Input_result = '//*[@class="el-scrollbar__view el-select-dropdown__list"]/li[contains(@class,"el-select-dropdown__item")]/span[text()="{}"]' # 输入用户名后,下方第一个值的路径
Admin_Logs_Search_button = '//*[@id="searchQuery"]'
Admin_Logs_Search_result_first = '(//*[@id="ly-table1-listcontent"]//td[1])[1]' # 搜索结果第一行
Admin_Logs_User_column = '(//div[@class="bifang-proxy-id item-content user_name_font"])[1]' # User列的第一行元素路径
Admin_Logs_Search_Source_input = '//*[@id="sourceIp"]//input' # source ip输入框路径
Admin_Logs_Source_IP_column = '(//*[@class="white-space table-hide"])[3]' # Source ip列下的第一行
Admin_Logs_Target_Type = '//ul[@class="el-scrollbar__view el-select-dropdown__list"]//span[text()="{}"]' # 目标类型
# Admin_Logs_Operation = '//ul[@class="el-scrollbar__view el-select-dropdown__list"]/li[contains(@class,"el-select-dropdown__item")]/span[text()="{}"]' #Operation
Admin_Logs_Operation = '//ul[@class="el-scrollbar__view el-select-dropdown__list"]/li/span[text()="{}"]' # Operation
Admin_Logs_Search_Target_Type_input = '//*[@id="logname"]//input' # 目标类型
Admin_Logs_Operation_column_content = '//tbody/tr[@class="el-table__row"][1]/td[3]//span' # Operation列内容
Admin_Logs_Target_Type_column = '//tbody/tr[@class="el-table__row"][1]/td[2]//span[@class="el-tooltip item"]' # '//*[@id="ly-table1-listcontent"]/div/div[3]/table/tbody/tr[1]/td[2]/div/div/span/span' #Target Type列
Admin_Logs_History_button = '(//*[@id="filtersearch-_FilteredSearch_ElRow_system_PolicyConfigurationLog_Home_App_anonymousComponent"]//span)[1]' # 查看历史查询按钮路径
Admin_Logs_clear_history = '//*[@id="clearHistory"]' # 清空历史按钮
Admin_Logs_history_item = '//*[@class="history-item"]' # 历史项目路径
Admin_Logs_select_column = '(//*[@class="col-choose open"]//span[2])[{}]' # 列设置下的元素路径
Admin_Logs_select_OK = '//*[@id="dropColOK-_ElementSet_system_PolicyConfigurationLog_Home_App_anonymousComponent"]' # 列设置下的ok按钮
Admin_Logs_select_set = '//*[@id="eventfixed"]/i' # 设置按钮路径
Admin_Logs_select_Cancel = common_eventfixed_button_all_posXpath # 取消所有勾选按钮路径
Admin_Logs_column = '//div[@class="ly-table1"]//table[@class="el-table__header"]//th[{}]/div/div/span' # 各列表头元素路径
Admin_Logs_select_all = '//*[@class="all-btn"]/label/span[2]' # 全选所有列元素的路径
Admin_Logs_page = '//*[@id="pagination-_pagination_system_PolicyConfigurationLog_Home_App_anonymousComponent"]//li[{}]' # 页码路径
Admin_Logs_next_page = '//*[@id="pagination-_pagination_system_PolicyConfigurationLog_Home_App_anonymousComponent"]//button[2]' # 下一页路径
Admin_Logs_page_input = '//*[@id="pagination-_pagination_system_PolicyConfigurationLog_Home_App_anonymousComponent"]//input' # 页码输入框路径
Admin_Logs_time_click = '(//*[@id="timePicker-_VTimePicker_ElRow_system_PolicyConfigurationLog_Home_App_anonymousComponent"]//input)[3]' # 时间选择路径
Admin_Logs_time_choose_input = '(//*[@class="time-content"])[2]/div[1]' # 输入时间范围内路径
Admin_Logs_exports = '//*[@id="audit_logExport"]/i' # 导出按钮路径
Admin_Logs_login_user_search_input = '//*[@id="select-label"]' # login user搜索输入框
Admin_Logs_login_user_search_type = '//*[@id="1-_FilteredSearch_ElRow_system_loggedInUser_Home_App_anonymousComponent"]' # User搜索方式
Admin_Logs_login_user_input = '//*[@id="userSearch"]//input'
Admin_Logs_login_user_search_button = '//*[@id="searchQuery"]' # 搜索按钮路径
Admin_Logs_login_user_disconnect = '(//*[@class="el-button disconnect-btn el-button--danger el-button--mini role-disconnect-btn"]/span[text()="Disconnect"])[1]' # 断开连接按钮路径
Admin_Logs_login_user_disconnect_confirm = '//*[@class="el-button el-button--default el-button--small el-button--primary operation-confirm"]' # 确认断开连接ok按钮路径
Admin_Logs_Search_user_first_details = '(//*[@id="ly-table1-listcontent"]//td[8])[1]//span//span' # 第一行details信息
login_user = '//*[@id="app"]//input[@name="username"]' # 登录user路径
login_pwd = '//*[@id="app"]//input[@name="password"]' # 登录密码路径
Admin_Logs_Operation_column = '//*[@id="ly-table1-listcontent"]//tbody/tr[{}]/td[4]' # Admin logs中Operation下的元素
Admin_Logs_language = '//span[@class="el-input__prefix"]//i' # 右上角的语言切换
Admin_Logs_language_change = '//*[@class="el-scrollbar__view el-select-dropdown__list"]//span[text()="{}"]' # 简体中文
Admin_Logs_time_lanuge_ele = '(//*[@class="time-title"])[{}]'
Admin_Logs_select_Cancel_set = '//*[@id="dropColcancel-_ElementSet_system_PolicyConfigurationLog_Home_App_anonymousComponent"]'
object_ip_address_create = '//*[@id="objectCreate-_OperateBtns_ElRow_Objects_ip_Home_App_anonymousComponent"]/span'
object_ip_address_create_name_input = '//*[@class="rel-input el-input el-input--mini"]//input'
object_ip_address_create_import_file = '//*[@class="el-button btn-style el-button--default el-button--small"]'
object_ip_address_create_upload_input = '//*[@class="el-upload__input"]'
object_ip_address_create_import_file_ok = '//*[@class="el-button import-ok el-button--primary el-button--small"]'
object_ip_address_create_ok = '//*[@id="OK-_IpDetail_Home_App_anonymousComponent"]'
object_ip_address_create_ok_confirm = '//*[@class="el-button el-button--default el-button--small el-button--primary operation-confirm"]'
Admin_Logs_Target_ID_column = '//*[@class="hasput"]//span[contains(text(),"ID")]'
object_ip_address_search_result_first = '(//*[@class="table-status-box"])[1]'
admin_logs_target_ids_column = '//span[@class="bfId"]' #该列元素集合
object_ip_address_delete_button = '//*[@id="appDel-_OperateBtns_ElRow_Objects_ip_Home_App_anonymousComponent"]'
object_ip_address_delete_confirm = '(//*[@class="dialog-footer"])[2]/button[1]'
url_ObjectDetailPage_auditLogsDrawer_compareDrawer_operationText_posXpath1 = '//div[@class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-2.5 css-n8utul"]/div[3]' # Audit Logs 侧滑页点击Compare后的 operation text Xpath
ObjectDetailPage_audit_log_compare_type_posXpath1 = '//div[@class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-2.5 css-n8utul"]/div[4]'
ObjectDetailPage_audit_log_compare_ip_posXpath1 = '//div[@class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-2.5 css-n8utul"]/div[5]'
ObjectDetailPage_audit_log_compare_time_posXpath1 = '//div[@class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-2.5 css-n8utul"]/div[6]'
ObjectDetailPage_audit_log_compare_user_posXpath1 = '//div[@class="MuiGrid-root MuiGrid-item MuiGrid-grid-xs-2.5 css-n8utul"]/div[7]'
ObjectDetailPage_audit_log_cancel_posXpath = '//button[text()="Cancel"]'
# My Account模块
menu_first_user_posXpath = "//*[@id='user_avator']" # 右上角当前登录账号
menu_second_user_my_account_posXpath = "//*[@id='editInfo']" # 右上角当前登录账号的My Account账单
my_account_page_profile_posXpath = "//*[@class='level1-icon iconfont icon-Profile']/.." # My Account下的Profile菜单
my_account_page_password_posXpath = "//*[@class='level1-icon iconfont icon-Password']/.." # My Account下的Password菜单
my_account_page_two_factor_posXpath = "//*[@level1-icon iconfont icon-two-factor-authentication']/.." # My Account下的Authentication菜单
my_account_page_access_tokens_posXpath = "//*[@class='level1-icon iconfont icon-Access-Tokens']/.." # My Account下的Access Tokens菜单
my_account_page_active_sessions_posXpath = "//*[@class='level1-icon iconfont icon-Active-Sessions']/.." # My Account下的Active Sessions菜单
my_account_page_login_logs_posXpath = "//*[@class='level1-icon iconfont icon-Login-Logs']/.." # My Account下的Login Logs菜单
my_account_page_profile_language_div_posXpath = "//div[@class='el-select-dropdown el-popper']" # 因多个div无法区分,使用正在显示的
my_account_page_profile_language_posXpath = ".//ul/li/span[text()='{}']" # 语言选项
my_account_page_profile_language_check_posXpath = "//div[@class='el-select-dropdown el-popper']//ul/li/span[text()='{replaceName}']"
page_my_account_button_ok_posXpath = "//*[@id='userOk-_anonymousComponent_Home_App_anonymousComponent']" # Profile/Password/Authentication修改界面OK提交按钮
my_acount_page_password_error = "//div[@id='pwd_form-item-_authSettings_VPanel_VEditPanel_anonymousComponent_Home_App_anonymousComponent']//div[@class='el-form-item__error']" # password错误提示
my_acount_page_confirm_password_error = "//div[@id='mimaConfirm_form-item-_authSettings_VPanel_VEditPanel_anonymousComponent_Home_App_anonymousComponent']//div[@class='el-form-item__error']" # confirm passwords错误提示
my_acount_page_password_strength_bar = "//div[@class='el-progress-bar__inner']" # 密码强度条
my_acount_page_password_tips = "//p[@class='pwdTips']" # 密码内容提示信息
my_acount_page_password_error_tips = "//div[@class='el-form-item__content']//div[@class='el-form-item__error']"
## Profile
page_profile_display_name_posXpath = "//*[@id='anonymousComponent_Home_App_anonymousComponent_name1']" # Name
page_profile_username_posXpath = "//*[@id='anonymousComponent_Home_App_anonymousComponent_account']/.." # Username
page_profile_time_zone_posXpath = "//div[@flag='2']//input" # Time Zone
page_profile_language_posXpath = "//div[@id='language_form-item-_anonymousComponent_VPanel_VEditPanel_anonymousComponent_Home_App_anonymousComponent']//input" # Language
# page_profile_select_options_posXpath = "//*[@class='el-select-dropdown el-popper' and contains(@style,'position: absolute;')]//span[normalize-space(text())='{replaceName}']"# Language下拉选项
page_profile_select_options_posXpath = "//*[@class='el-select-dropdown el-popper']//span[normalize-space(text())='{replaceName}']" # Language下拉选项
page_profile_line_per_page_posXpath = "//input[@id='anonymousComponent_VPanel_VEditPanel_anonymousComponent_Home_App_anonymousComponent_rowsPerPage']" # Lines per page
page_profile_all_multi_session_posXpath = "//input[@id='anonymousComponent_VPanel_VEditPanel_anonymousComponent_Home_App_anonymousComponent_allowMultiSession']/.." # Allow Multi Session
page_profile_update_time_zone_tips_posXpath = "//*[@class='UTCTips positionAbsolute']//p[@class='cursor upDateUTC']" # 时区提示操作按钮
page_profile_button_tips_colse_posXpath = "//*[@class='UTCTips positionAbsolute']//i[@class='iconfont icon-Delete_X']" # 时区关闭按钮
page_profile_button_tips_content_posXpath = "//*[@class='UTCTips positionAbsolute']//p[@class='cursor upDateUTC']/../p[1]" # 时区提示内容:
## Password//*[@class='UTCTips positionAbsolute'][1]//i[@class='iconfont icon-Delete_X']
page_password_password_input_posXpath = "//*[@id='authSettings_VPanel_VEditPanel_anonymousComponent_Home_App_anonymousComponent_mima']" # Password
page_password_password_show_button_posXpath = "//*[@id='authSettings_VPanel_VEditPanel_anonymousComponent_Home_App_anonymousComponent_mima']/..//*[@class='iconfont icon-Monitor monitor fontsize18']" # Password显示隐藏按钮
page_password_confirm_password_input_posXpath = "//*[@id='authSettings_VPanel_VEditPanel_anonymousComponent_Home_App_anonymousComponent_mimaConfirm']" # Confirm Password
page_password_confirm_password_show_button_posXpath = "//*[@id='authSettings_VPanel_VEditPanel_anonymousComponent_Home_App_anonymousComponent_mimaConfirm']/..//*[@class='iconfont icon-Monitor monitor fontsize18']" # Confirm Password显示隐藏按钮
page_password_password_content_posXpath = "//*[@class='el-form-item__content']/p" # password内容要求
page_password_password_required_posXpath = "//*[@class='el-form-item__content']/div[@class='el-form-item__error']" # password和Confirm必填要求
##Access Tokens
page_access_tokens_button_createTokens_posXpath = "//*[@class='el-button btn-style cursorPointer VButton margin-right5 el-button--default el-button--small']" # Create Personal Access Token
##Federation------Federation-------Federation
## Cluster-------Cluster-------------------------Cluster--------------------------------------------Cluster---------Cluster------
# Federation:Cluster 列表页
listPage_federation_cluster_createButton_posId = "app_create-_OperateBtns_ElRow_Clusters_Home_App_anonymousComponent" # Create按钮
listPage_federation_cluster_editButton_posId = "appEdit-_OperateBtns_ElRow_Clusters_Home_App_anonymousComponent" # edit按钮id
listPage_federation_cluster_delButton_posId = "appDel-_OperateBtns_ElRow_Clusters_Home_App_anonymousComponent" # del按钮id
listPage_federation_cluster_selectLabel_posId = mainPage_common_search_selectLabel_posId # 查询框id,使用公共定位
listPage_federation_cluster_buttonSearch_posId = mainPage_common_search_buttonSearch_posId # 查询按钮id,使用公共定位
listPage_federation_cluster_buttonClear_posId = mainPage_common_search_buttonClear_posId # 清空查询按钮id,使用公共定位
listPage_federation_cluster_dropDown_item_posXpath = listPage_common_dropDown_item_posXpath # 下拉菜单定位,使用公共定位
listPage_federation_cluster_input_itemContent_posXpath = listPage_common_input_itemContent_posXpath # 输入item的值,replaceName替换实际查询值,使用公共定位
listPage_federation_cluster_dropDown_typeItem_posXpath = listPage_common_dropDown_typeItem_posXpath # 查询中type的下拉item定位,replaceName替换实际查询值,使用公共定位
listPage_federation_cluster_tableTbody_posXpath = listPage_common_tableTbody_posXpath # 列表tabel body xpath,使用公共定位
listPage_federation_cluster_tableHeader_posXpath = listPage_common_tableHeader_posXpath # 列表table 表头xpath,使用公共定位
listPage_federation_cluster_policy_link_posXpath = "clusterPolicyLink-_Clusters_Home_App_anonymousComponent"
# listPage->Tips dialog 列表页 tips对话框listPage_federation_cluser_delButton_posId
listPage_dialogTips_federation_cluster_button_yes_posCss = listPage_common_button_yes_posCss # 删除提示的Tips的yes按钮,使用公共定位
listPage_dialogTips_federation_cluster_button_no_posCss = listPage_common_button_no_posCss # 删除提示的Tips的close按钮,使用公共定位
listPage_federation_cluster_policy_link_posXpath = "//td[contains(@class, '{}')]//div[@id='clusterPolicyLink-_Clusters_Home_App_anonymousComponent']" # Policy Link列定位
# Create 和 Edit Login Profiles 新增和编辑页
federation_cluster_input_name_posId = "clusterName" # name输入框id
federation_cluster_api_url_posId = "api_url" # api_url输入框id
federation_cluster_access_token_posId = "access_token" # access_token输入框id
federation_cluster_test_conecton_posId = "testConnection-_ClustersEdit_Home_App_anonymousComponent" # Test Connection按钮id
federation_cluster_test_conecton_text_posId = "//button[@id='testConnection-_ClustersEdit_Home_App_anonymousComponent']/span" # Test Connection按钮文本
federation_cluster_test_conecton_style_posXpath = "//button[@id='testConnection-_ClustersEdit_Home_App_anonymousComponent']/../span/i" # Test Connection按钮id
federation_cluster_oK_posId = "ClustersOk-_ClustersEdit_Home_App_anonymousComponent" # OK按钮id
federation_cluster_cancel_posId = "ClustersCancel-_ClustersEdit_Home_App_anonymousComponent" # Cancel按钮id
federation_cluster_connectivity_style = "color: rgb(141, 203, 75);" # Cluster列表Connectivity正常连接状态显示样式
federation_cluster_unconnectivity_style = "color: rgb(232, 122, 107);" # Cluster列表Connectivity非正常链接显示样式
federation_cluster_first_row_create_time_posXpath = "//table[@class='el-table__body']/tbody/tr[1]/td[4]//div[@class='operation textLeft']/span" # Cluster List列表首行創建時間,翻頁后和上頁不同,用以判定翻頁是否生效
federation_cluster_page_fields_labels_posXpath = "//form//label[@class='el-form-item__label']" # Cluster编辑界面的所有fileds文本定位
federation_cluster_page_name_length_posXpath = "//div[@class='biFangNameLength-length']" # Cluster编辑页面Name长度定位
federation_cluster_title_posXpath = "//div[@class='panel-header']" # 編輯頁面title
federation_cluster_name_error_posXpath = "//label[@for='name']/..//div[@class='el-form-item__error']" # Cluster Name错误提示
federation_cluster_api_url_error_posXpath = "//label[@for='api_url']/..//div[@class='el-form-item__error']" # Cluster API URI错误提示
federation_cluster_access_token_error_posXpath = "//label[@for='access_token']/..//div[@class='el-form-item__error']" # Cluster Access Token界面直接显示错误提示
federation_cluster_access_token_alert_posXpath = "//p[@class='el-message__content']" # Cluster Access Token弹出错误提示框提示
federation_cluster_list_page_name_posXpath = "//td[contains(@class, '{}')]//span/span" # Cluster 列表Name列
## Policy Link---------------------------------------------------------Policy Link--------------------------------------------------------------Policy Link
# Federation:Policy Link 列表页
listPage_federation_policy_link_selectLabel_posId = mainPage_common_search_selectLabel_posId # 查询框id,使用公共定位
listPage_federation_policy_link_buttonSearch_posId = mainPage_common_search_buttonSearch_posId # 查询按钮id,使用公共定位
listPage_federation_policy_link_buttonClear_posId = mainPage_common_search_buttonClear_posId # 清空查询按钮id,使用公共定位
listPage_federation_policy_link_dropDown_item_posXpath = listPage_common_dropDown_item_posXpath # 下拉菜单定位,使用公共定位
listPage_federation_policy_link_input_itemContent_posXpath = listPage_common_input_itemContent_posXpath # 输入item的值,replaceName替换实际查询值,使用公共定位
listPage_federation_policy_link_dropDown_typeItem_posXpath = listPage_common_dropDown_typeItem_posXpath # 查询中type的下拉item定位,replaceName替换实际查询值,使用公共定位
listPage_federation_policy_link_tableTbody_posXpath = listPage_common_tableTbody_posXpath # 列表tabel body xpath,使用公共定位
listPage_federation_policy_link_tableHeader_posXpath = listPage_common_tableHeader_posXpath # 列表table 表头xpath,使用公共定位
federation_policy_link_list_button_delete_posId = "appDel-_OperateBtns_ElRow_PolicyLink_Home_App_anonymousComponent" # Policy Links列表页的删除按钮。
federation_policy_link_list_button_check_posId = "app_check-_OperateBtns_ElRow_PolicyLink_Home_App_anonymousComponent" # Policy Links列表页的Check按钮。
federation_policy_link_list_button_sync_posId = "app_sync-_OperateBtns_ElRow_PolicyLink_Home_App_anonymousComponent" # Policy Links列表页的Sync按钮。
federation_policy_link_list_page_search_fields_posXpath = "//li[@id='-1-_FilteredSearch_ElRow_PolicyLink_Home_App_anonymousComponent']/..//li/span" # Policy Links查询列表的所有搜索条件定位
federation_policy_link_list_page_special_search_fields_posXpath = ".//span[normalize-space(text())='{}']" # Policy Links查询列表的指定搜索条件定位
federation_policy_link_list_table_body_posXpath = "//table[@class='el-table__body']//tr" # Policy Link 列表表格内容定位
federation_policy_link_list_select_div_posXpath = "//div[@class='el-select-dropdown el-popper select-popper'][not(contains(@style,'display: none'))]" # 需要选择下拉的搜索条件显示
federation_policy_link_list_select_option_posXpath = ".//li[not(contains(@style,'display: none'))]" # 从下拉列表对象往下找显示的对应选择项
federation_policy_link_list_operation_check_posXpath = "//td[contains(@class,'{}')]//button[@id='policy_check-_PolicyLink_Home_App_anonymousComponent']" # 列表记录的Check操作按钮定位
federation_policy_link_list_operation_sync_posXpath = "//td[contains(@class,'{}')]//button[@id='policy_sync-_PolicyLink_Home_App_anonymousComponent']" # 列表记录的Check操作按钮定位
federation_policy_link_source_search_tips_posXpath = "//div[@class='el-message el-message--error']//p[@class='el-message__content']" # 仅用Source IP搜索提示必须选择Type
federation_policy_link_drop_requestID_posXpath = "//*[@id='2-_FilteredSearch_ElRow_PolicyLink_Home_App_anonymousComponent']/span" # 输入框下拉RequestID定位
federation_policy_link_input_value_posXpath = "//*[@id='request_id']//div[@class='rel-input v-input input el-input el-input--mini']/input" # 选择查询条件后输入定位
federation_policy_link_all_select_posXpath = "//*[@id='all']/span[1]/span" # 全选checkbox定位
federation_policy_link_delete_yes_posXpath = "//*[@class='el-button delComponents-ok role-disconnect-btn el-button--default el-button--small']" # 删除后yes按钮定位
federation_policy_link_list_first_button_sync_posId = '//*[@id="policy_sync-_PolicyLink_Home_App_anonymousComponent"]' # 第一行sync按钮定位
##Datapath Telemetry------Datapath Telemetry-------Datapath Telemetry
# Create 和 Edit Datapath Telemetry 新增和编辑页
datapath_telemetry_input_max_packets_posId = "datapathDevice" # Max Packets输入框id
datapath_telemetry_textarea_pcap_filter_posId = "datapathRule" # PCAP filter输入框id
datapath_telemetry_input_datapath_timeout_posId = "datapathTimeout" # datapath Timeout输入框id
datapath_telemetry_input_datapath_sampling_posId = "datapathSampling" # datapath Sampling输入框id
datapath_telemetry_input_datapath_snaplen_posId = "datapathSnaplen" # datapath Snaplen输入框id
datapath_telemetry_check_box_capture_packets_posXpath = "//label[@id='datapathPackets-_DatapathTelemetry_Home_App_anonymousComponent']/span" # Capture Packets复选框地址
datapath_telemetry_check_box_input_capture_packets_posXpath = "//label[@id='datapathPackets-_DatapathTelemetry_Home_App_anonymousComponent']/span/input" # Capture Packets复选框Input
datapath_telemetry_add_button_device_tag_posId = "telemetry_deviceadd-_DevicesSelect_ElFormItem_ElForm_VPanel_VEditPanel_DatapathTelemetry_Home_App_anonymousComponent" # 无Device Tag列表的添加按钮id
datapath_telemetry_create_button_device_tag_posId = "telemetry_devicecreate-_DevicesSelect_ElFormItem_ElForm_VPanel_VEditPanel_DatapathTelemetry_Home_App_anonymousComponent" # 已有Device Tag列表后的添加按钮id
datapath_telemetry_device_tags_posXpath = "//div[@zs-label='Device Group']//li[contains(@class,'row el-dropdown-menu__item')]" # 重新执行界面的已有Device TAG列表
datapath_telemetry_device_tags_list_posId = "telemetry_device-_DevicesSelect_ElFormItem_ElForm_VPanel_VEditPanel_DatapathTelemetry_Home_App_anonymousComponent" # 重新执行界面的已有Device TAG列表
datapath_telemetry_device_tags_del_posXpath = "//i[@class='operate-icon row-edit iconfont icon-Delete_X icon-del']" # 已选择的Devices Tag列表对应的删除按钮
datapath_telemetry_device_tags_delete_posXpath = "//li[@class='row el-dropdown-menu__item']/div/i[@class='operate-icon row-edit iconfont icon-Delete_X icon-del']" # 重新执行界面的已有Device TAG
datapath_telemetry_add_button_traffic_link_id_posXpath = "//div[@zs-label='Traffic Link ID']//i[contains(@class,'iconfont icon-Create1 cursor')]" # 添加Link ID按钮
datapath_telemetry_add_button_traffic_link_id_disable_posXpath = "//div[@zs-label='Traffic Link ID']//i[contains(@class,'iconfont icon-Create1 cursor')]/.." # 获取Link ID禁用时样式
datapath_telemetry_traffic_link_id_input_posXpath = "//div[@class='traffic-link-box']"#Link ID input,多個
datapath_telemetry_traffic_link_id_input_value_posXpath = "//div[@class='traffic-link-box']/div/div/input" #Link ID input,获取Value使用
datapath_telemetry_traffic_link_id_select_option_posXpath = "//div[contains(@style, 'position: absolute;')][@class='el-select-dropdown el-popper']//li/span[normalize-space(text())='{}']" #Link ID选择下拉列表选项
datapath_telemetry_button_start_posId = "datapathStart-_DatapathTelemetry_Home_App_anonymousComponent" # 开始按钮
datapath_telemetry_button_download_packets_posId = "telemetry-pcapNG-_DatapathTelemetry_Home_App_anonymousComponent" # 下载捕包按钮
datapath_telemetry_button_restart_posId = "run_again-_DatapathTelemetry_Home_App_anonymousComponent" # 重新开始按钮
datapath_telemetry_input_datapath_table_search_posId = "datapathTableSearch" # 捕包记录搜索按钮datapathTableSearch
datapath_telemetry_button_clear_list_posId = "datapathTableClearList-_DatapathTable_VPanel_VEditPanel_DatapathTelemetry_Home_App_anonymousComponent" # Clear List
datapath_telemetry_button_download_logs_posId = "datapathTableLogs-_DatapathTable_VPanel_VEditPanel_DatapathTelemetry_Home_App_anonymousComponent" # Download Logs
datapath_telemetry_text_job_id_posXpath = "//span[@class='item-content']" # 页面显示指定Job ID信息
datapath_telemetry_button_job_history_posId = "historyJobs-_anonymousComponent_ElFormItem_ElForm_DatapathTelemetryRightPanel_VPanel_VEditPanel_DatapathTelemetry_Home_App_anonymousComponent" # 打开历史Job列表信息按钮
datapath_telemetry_job_list_search_posXpath = "//div[@class='drawer-box']//input[@id='select-label']/.." # Job列表页搜索框
# datapath_telemetry_button_job_list_search_posId = "searchQuery" #Job列表页搜索框
datapath_telemetry_text_search_info_search_posId = "-1-_FilteredSearch_HistoryJobsTable_VDraswer_EditDraw_DatapathTelemetry_Home_App_anonymousComponent" # 搜索项提示信息
datapath_telemetry_text_search_job_id_search_posId = "1-_FilteredSearch_HistoryJobsTable_VDraswer_EditDraw_DatapathTelemetry_Home_App_anonymousComponent" # 搜索项Job_id
datapath_telemetry_text_search_status_search_posId = "2-_FilteredSearch_HistoryJobsTable_VDraswer_EditDraw_DatapathTelemetry_Home_App_anonymousComponent" # 搜索项Status
datapath_telemetry_text_search_create_by_search_posId = "3-_FilteredSearch_HistoryJobsTable_VDraswer_EditDraw_DatapathTelemetry_Home_App_anonymousComponent" # 搜索项Create By
datapath_telemetry_device_tag_text_posXpath = "//ul[@class='device-row-box']//div[@title='{}'][normalize-space(text())='{}']/.." # Data Center\Divece Group对应标签的所有项
# datapath_telemetry_device_tag_button_ok_posID = "proxyManipulationConditionsAreaSuccess" #打开Device Tag选择界面的OK按钮
# datapath_telemetry_device_tag_button_cancel_posId = "proxyManipulationConditionsAreaCancel" #打开Device Tag选择界面的Cancel按钮
datapath_telemetry_device_button_close_posXpath = "//button[@class='el-button right-menu-button-close el-button--info el-button--small']" # 打开Device Tag选择界面的Close按钮,无OK和Cancel按钮
datapath_telemetry_input_traffic_link_id_posId = "traffic_input" # Traffic Link ID列表
datapath_telemetry_job_list_page_first_row_posXpath = "//*[@class='el-table__body']//tr[1]" # 列表第一行
datapath_telemetry_listPage_common_tableTbody_posXpath = "//div[@class='PolicyHistoryTableSlider']//table[@class='el-table__body']" # 列表tabel body xpath
datapath_telemetry_listPage_common_tableHeader_posXpath = "//div[@class='PolicyHistoryTableSlider']//table[@class='el-table__header']/thead/tr" # 列表table 表头xpath
# Back and Restore---------------Back and Restore-----------------Back and Restore
back_and_restore_edit_schedule_button_posID = "scheduleEdit-_BackupSchedule_ElCol_ElRow_VPanel_VEditPanel_system_BackupAndRestore_Home_App_anonymousComponent"
back_and_restore_save_schedule_button_posID = "scheduleSave"
## Traffic Links--------------------------------------------------------Traffic Links--------------------------------------------------------------Traffic Links
## Traffic Links--------------------------------------------------------Traffic Links--------------------------------------------------------------Traffic Links
##列表页
listPage_traffic_links_createButton_posId = "app_create-_OperateBtns_ElRow_TrafficLink_Home_App_anonymousComponent" # Create按钮
listPage_traffic_links_editButton_posId = "appEdit-_OperateBtns_ElRow_TrafficLink_Home_App_anonymousComponent" # edit按钮id
listPage_traffic_links_delButton_posId = "appDel-_OperateBtns_ElRow_TrafficLink_Home_App_anonymousComponent" # del按钮id
listPage_traffic_links_searchButton_posId = "searchQuery" # 查询按钮id
listPage_traffic_links_checkBoxs_posXpath = '//table[@class="el-table__body"]//span[@class="el-checkbox__inner"]' # 列表页所有Traffic Links CheckBox
listPage_traffic_links_checkBox_posXpath_template = '(//table[@class="el-table__body"]//span[@class="el-checkbox__inner"])[{}]' #
listPage_traffic_links_search_input_posId = 'select-label' # 列表页搜索框
listPage_traffic_links_after_type_search_input_posXpath = '//div[contains(@class,"ListItem clearfix last-item")]//input' # 选择筛选方式后的搜索框
listPage_traffic_links_search_id_posId = '1-_FilteredSearch_ElRow_TrafficLink_Home_App_anonymousComponent' # 列表页ID筛选方式
listPage_traffic_links_search_name_posId = '2-_FilteredSearch_ElRow_TrafficLink_Home_App_anonymousComponent' # 列表页Name筛选方式
##详情页:
detailPage_traffic_links_id_posId = "traffic_links_id" # ID
detailPage_traffic_links_name_posId = "traffic_links_name" # NAME
detailPage_traffic_links_speed_posId = "traffic_links_speed" # SPEED
detailPage_traffic_links_speed_number_posXpath_template = '//div[contains(@x-placement,"-start")]//span[normalize-space(text())="{}"]' # speed 具体内容
detailPage_traffic_links_Description_posId = "traffic_links_Description" # Description
detailPage_traffic_links_oK_posId = "traffic_links_ok" # OK按钮id
|