mirror of
https://github.com/pgadmin-org/pgadmin4.git
synced 2024-11-25 18:20:20 -06:00
285 lines
8.8 KiB
Python
285 lines
8.8 KiB
Python
#
|
|
# pgAdmin 4 - PostgreSQL Tools
|
|
#
|
|
# Copyright (C) 2013 - 2024, The pgAdmin Development Team
|
|
# This software is released under the PostgreSQL Licence
|
|
#
|
|
##########################################################################
|
|
|
|
|
|
class BrowserToolBarLocators():
|
|
"""This will contains element locators for browser tree tool bar"""
|
|
|
|
open_query_tool_button_css = \
|
|
"button[aria-label='Query Tool']:not(:disabled)"
|
|
|
|
query_tool_panel_css = \
|
|
".dock-tab .pg-font-icon.icon-query_tool"
|
|
|
|
view_table_data_button_css = \
|
|
"button[aria-label='All Rows']:not(:disabled)"
|
|
|
|
view_data_panel_css = ".dock-tab .pg-font-icon.icon-view_data"
|
|
|
|
filter_data_button_css = \
|
|
"button[aria-label='Filtered Rows...']:not(:disabled)"
|
|
|
|
filter_box_css = ".dock-fbox div[title^='Data Filter']"
|
|
|
|
|
|
class NavMenuLocators:
|
|
"This will contains element locators of navigation menu bar"
|
|
|
|
file_menu_css = "button[data-label='File']"
|
|
|
|
preference_menu_item_css = "li[data-label='Preferences']"
|
|
|
|
tools_menu_css = "button[data-label='Tools']"
|
|
|
|
view_data_link_css = "div[data-label='View/Edit Data']"
|
|
|
|
object_menu_css = "button[data-label='Object']"
|
|
|
|
edit_obj_css = "li[data-label='Properties...']"
|
|
|
|
backup_obj_css = "li[data-label='Backup...']"
|
|
|
|
restore_obj_css = "li[data-label='Restore...']"
|
|
|
|
maintenance_obj_css = "li[data-label='Maintenance...']"
|
|
|
|
show_system_objects_pref_label_xpath = \
|
|
"//label[contains(text(), 'Show system objects?')]"
|
|
|
|
maximize_pref_dialogue_css = "button[data-label='Maximize']"
|
|
|
|
maximize_pref_dialogue_css = "button[data-label='Maximize']"
|
|
|
|
specified_pref_node_exp_status = \
|
|
"//*[@id='treeContainer']//div//span[text()='{0}']"
|
|
|
|
specified_preference_tree_node = \
|
|
"//*[@id='treeContainer']//div//span[text()='{0}']" \
|
|
|
|
specified_sub_node_of_pref_tree_node = \
|
|
"//*[@id='treeContainer']//div//span[text()='{1}']"
|
|
insert_bracket_pair_switch_btn = \
|
|
"//label[text()='Insert bracket pairs?']//following::div[1]//span"
|
|
|
|
copy_sql_to_query_tool_switch_btn = \
|
|
"//label[text()='Copy SQL from main window to query tool?']" \
|
|
"//following::div[1]//span"
|
|
|
|
backup_filename_txt_box_name = "file"
|
|
|
|
restore_file_name_txt_box_name = "file"
|
|
|
|
backup_btn = ".dock-fbox button[data-label='Backup']"
|
|
|
|
bcg_process_status_alertifier_css = \
|
|
".ajs-message.ajs-bg-bgprocess.ajs-visible"
|
|
|
|
status_alertifier_more_btn_css = ".pg-bg-more-details"
|
|
|
|
process_watcher_detailed_message_css = \
|
|
"div[data-test='process-details'] div[data-test='process-message']"
|
|
process_watcher_detailed_command_css = \
|
|
"div[data-test='process-details'] div[data-test='process-cmd']"
|
|
|
|
restore_file_name_xpath = "//div[contains(text(),'Restore')]" \
|
|
"//following::input[@name='file']"
|
|
|
|
restore_button_xpath = \
|
|
"//button[ contains(.,'Restore')]"
|
|
|
|
maintenance_operation = "//label[text()='Maintenance operation']"
|
|
|
|
select_tab = \
|
|
"div.dock-box div[title*='{}']"
|
|
select_tab_xpath = \
|
|
"//*[contains(@class,'dock-top')]//*[contains(@class,'dock-tab') " \
|
|
"and contains(.,'{}')]"
|
|
|
|
rcdock_tab = "div.dock-tab-btn[id$='{0}']"
|
|
|
|
process_start_close_selector = \
|
|
"div[data-test='process-popup-start'] button[data-label='Close']"
|
|
process_end_close_selector = \
|
|
"div[data-test='process-popup-end'] button[data-label='Close']"
|
|
process_watcher_error_close_xpath = \
|
|
".btn.btn-sm-sq.btn-primary.pg-bg-close > i"
|
|
|
|
|
|
class QueryToolLocators:
|
|
btn_save_file = "button[data-label='Save File']"
|
|
|
|
btn_save_data = "button[data-label='Save Data Changes']"
|
|
|
|
btn_query_dropdown = "button[data-label='Execute options']"
|
|
|
|
btn_auto_rollback = "li[data-label='Auto rollback on error?']"
|
|
|
|
btn_auto_rollback_check_status = "#btn-auto-rollback > i"
|
|
|
|
btn_auto_commit = "li[data-label='Auto commit?']"
|
|
|
|
btn_auto_commit_check_status = "#btn-auto-commit > i"
|
|
|
|
btn_cancel_query = "button[data-label='Cancel query']"
|
|
|
|
btn_explain = "button[data-label='Explain']"
|
|
|
|
btn_explain_analyze = "button[data-label='Explain Analyze']"
|
|
|
|
btn_explain_options_dropdown = "button[data-label='Explain Settings']"
|
|
|
|
btn_explain_verbose = "li[data-label='Verbose']"
|
|
|
|
btn_explain_costs = "li[data-label='Costs']"
|
|
|
|
btn_explain_buffers = "li[data-label='Buffers']"
|
|
|
|
btn_explain_timing = "li[data-label='Timing']"
|
|
|
|
btn_edit_dropdown = "button[data-label='Edit']"
|
|
|
|
btn_clear_history = "#btn-clear-history"
|
|
|
|
btn_clear = "li[data-label='Clear Query']"
|
|
|
|
btn_add_row = "button[data-label='Add row']"
|
|
|
|
query_tool_menu = "ul[aria-label='{0}']"
|
|
|
|
query_editor_panel = "#id-query"
|
|
|
|
query_history_selected = \
|
|
"#id-history li[data-label='history-entry'].Mui-selected"
|
|
|
|
query_history_entries = "#id-history li[data-label='history-entry']"
|
|
|
|
query_history_specific_entry = \
|
|
"#id-history li[data-label='history-entry']:nth-of-type({0})"
|
|
|
|
query_history_detail = "#id-history div[data-label='history-detail']"
|
|
|
|
query_history_selected_icon = query_history_selected + ' svg'
|
|
|
|
invalid_query_history_entry_css = \
|
|
"#id-history li[data-label='history-entry']"
|
|
|
|
explain_details = "#id-explain div[data-label='explain-details']"
|
|
|
|
editor_panel = "#output-panel"
|
|
|
|
query_messages_panel = "#id-messages"
|
|
|
|
output_row = "#id-dataoutput div.rdg-row[aria-rowindex={0}]"
|
|
|
|
output_row_col = "#id-dataoutput div.rdg-row[aria-rowindex='{0}']" \
|
|
" div.rdg-cell[aria-colindex='{1}']"
|
|
|
|
output_column_header_css = \
|
|
"#id-dataoutput div.rdg-cell div[data-column-key='{0}']"
|
|
|
|
output_column_data_xpath = "//div[contains(@class, 'rdg-cell')]" \
|
|
"[contains(., '{}')]"
|
|
output_row_xpath = "//div[@aria-rowindex='{0}']"
|
|
output_cell_xpath = "//div[@aria-rowindex='{0}']/div[@aria-colindex='{1}']"
|
|
|
|
select_all_column = \
|
|
"//div[@role='columnheader'][@aria-colindex='1']"
|
|
|
|
new_row_xpath = "//div[contains(@class, 'new-row')]"
|
|
|
|
scratch_pad_css = "#id-scratch textarea"
|
|
|
|
copy_button_css = "#id-dataoutput button[data-label='Copy']"
|
|
|
|
copy_options_css = "#id-dataoutput button[data-label='Copy options']"
|
|
|
|
copy_headers_btn_css = "li[data-label='Copy with headers']"
|
|
|
|
paste_button_css = "#id-dataoutput button[data-label='Paste']"
|
|
|
|
row_editor_text_area_css = "div[data-label='pg-editor'] textarea"
|
|
|
|
json_editor_text_area_css = \
|
|
"div.ace_layer.ace_text-layer .ace_line_group .ace_line"
|
|
|
|
row_editor_checkbox_css = "div[data-label='pg-checkbox-editor']"
|
|
|
|
text_editor_ok_btn_css = \
|
|
"div[data-label='pg-editor'] button[data-label='OK']"
|
|
|
|
btn_load_file_css = "button[data-label='Open File']"
|
|
|
|
btn_execute_query_css = "button[data-label='Execute script']"
|
|
|
|
folder_path_css = \
|
|
"div[data-label='file-path'] input"
|
|
|
|
search_file_edit_box_css = "div [data-label='search'] input"
|
|
|
|
save_file_path_xpath = \
|
|
"//span[text()='Save As']/following-sibling::div/input"
|
|
|
|
change_file_types_dd_xpath = \
|
|
"//span[text()='File Format']/following-sibling::div"
|
|
|
|
select_file_content_css = \
|
|
"div [role='grid'] div[role='gridcell'] span"
|
|
|
|
query_output_canvas_css = "#id-dataoutput .rdg"
|
|
|
|
query_output_cells = ".rdg-cell[role='gridcell']"
|
|
|
|
sql_editor_message = "//div[@id='id-messages'][contains(string(), '{}')]"
|
|
|
|
code_mirror_hint_box = ".cm-editor .cm-tooltip-autocomplete"
|
|
|
|
code_mirror_hint_item_xpath = \
|
|
("//div[contains(@class, 'cm-tooltip-autocomplete') "
|
|
"and contains(., '{}')]")
|
|
|
|
code_mirror_content = "{0} .cm-content"
|
|
|
|
btn_commit = "button[data-label='Commit']"
|
|
|
|
btn_history_remove_all = "#id-history button[data-label='Remove All']"
|
|
|
|
show_query_internally_btn = \
|
|
"//div[contains(normalize-space(text())," \
|
|
"'Show queries generated internally by')]/span/span[1]"
|
|
|
|
editable_column_icon_xpath = \
|
|
"//div[@role='columnheader']/div/div/*[@data-label='EditIcon']"
|
|
|
|
read_only_column_icon_xpath = \
|
|
"//div[@role='columnheader']/div/div/*[@data-label='LockIcon']"
|
|
|
|
|
|
class ConnectToServerDiv:
|
|
# This will contain xpaths for element relating to Connect to server div
|
|
|
|
password_field = "//input[@id='password']"
|
|
|
|
ok_button = \
|
|
"//button[@class='ajs-button btn btn-primary fa fa-check']"
|
|
|
|
error_message = \
|
|
"//form[@id='frmPassword']/div/div//div[@class='alert-text']"
|
|
|
|
cancel_button = \
|
|
"//div [@class='ajs-modeless ajs-movable ajs-zoom']" \
|
|
"//button[text()='Cancel']"
|
|
|
|
|
|
class PropertyDialogueLocators:
|
|
# This will contain xpaths for elements in properties dialogue
|
|
server_dialogue_title = "//span[text()='Register - Server']"
|
|
|
|
server_connection_tab = "//button[text()='Connection']"
|
|
|
|
server_tab_save = "//button[text()='Save']"
|