177 lines
14 KiB
INI
177 lines
14 KiB
INI
[PriceLocators]
|
|
return_fee_input_locator = '//*[@id='productMainContentContainerId']/div/div[1]/div/div/div[4]/div/div[1]/div[3]/div/div/div/div[1]/div[2]/input'
|
|
first_delv_fee_input_locator = '//*[@id='productMainContentContainerId']/div/div[1]/div/div/div[4]/div/div[1]/div[4]/div/div[2]/div/div[1]/div[2]/input'
|
|
exchange_fee_input_locator = '//*[@id='productMainContentContainerId']/div/div[1]/div/div/div[4]/div/div[1]/div[5]/div/div/div/div[1]/div[2]/input'
|
|
plus_margin_locator = '//*[@id='productMainContentContainerId']/div/div[1]/div/div/div[2]/div/div[1]/div[8]/div/div/div[3]/div/div/div/div[1]/div[2]/input'
|
|
oversea_shipping_locator = '//*[@id='productMainContentContainerId']/div/div[1]/div/div/div[2]/div/div[1]/div[10]/div/div/div/div[1]/div[2]/input'
|
|
option_count_text_locator = 'div#productMainContentContainerId th:nth-child(2) > div > span'
|
|
product_cost_locator = '//*[@id='productMainContentContainerId']/div/div[2]/div/div/div[5]/div[1]/div/div/div/div/div[2]/table/tbody/tr[{index}]/td[3]/div/div/div/div[2]/input'
|
|
standard_selling_price_locator = '//*[@id='productMainContentContainerId']/div/div[2]/div/div/div[5]/div[1]/div/div/div/div/div[2]/table/tbody/tr[{index}]/td[4]/div/div/div[1]/div/div[2]/input'
|
|
product_cost_for_single_locator = '//*[@id="productMainContentContainerId"]/div/div[2]/div/div/div[2]/div[1]/div/div/div/div/div[2]/table/tbody/tr[2]/td[2]/div/div/div/div[2]/input'
|
|
standard_selling_price_for_single_locator = '//*[@id="productMainContentContainerId"]/div/div[2]/div/div/div[2]/div[1]/div/div/div/div/div[2]/table/tbody/tr[2]/td[3]/div/div/div[1]/div/div[2]/input'
|
|
ordering_by_name_locator = 'button:has-text("이름순 정렬")'
|
|
ordering_by_option_locator = 'button:has-text("옵션탭 순서 정렬")'
|
|
|
|
[OptionLocators]
|
|
# 옵션 관련 선택자
|
|
option_excluded_selector_template = '//*[@id="productMainContentContainerId"]/div[1]/div[2]/div/div/div[2]/div/div[1]/div/div/div[2]/div/div/div[5]/div[1]/div/div/ul/li[{index}]/div/div[1]/div/div[2]/div/div[3]'
|
|
option_input_selector_template = '//*[@id="productMainContentContainerId"]/div[1]/div[2]/div/div/div[2]/div/div[1]/div/div/div[2]/div/div/div[5]/div[1]/div/div/ul/li[{index}]/div/div[1]/div/div[3]/div[2]/div[1]/span/input'
|
|
single_option_locator = '//div[@id="productMainContentContainerId"]//label[contains(@class, 'ant-radio-button-wrapper-checked') and contains(., '단일 상품등록')]'
|
|
option_product_locator = '//div[@id="productMainContentContainerId"]//label[contains(@class, 'ant-radio-button-wrapper-checked') and contains(., '옵션 상품등록')]'
|
|
total_options_selector = '#productMainContentContainerId label.ant-checkbox-wrapper'
|
|
; is_all_option_checked_selector = '#productMainContentContainerId .ant-checkbox-indeterminate'
|
|
is_all_option_checked_selector = '//*[@id="productMainContentContainerId"]/div[1]/div[2]/div/div/div[2]/div/div[1]/div/div/div[2]/div/div/div[4]/div[2]/div[1]/label/span[1]/input'
|
|
; ai_option_btn_selector = 'div#productMainContentContainerId div:nth-child(2) > div > div > div.ant-row.ant-row-middle.css-1li46mu > div:nth-child(4) > button[type=\"button\"]'
|
|
ai_option_btn_selector = 'button:has-text("AI 옵션명 다듬기")'
|
|
original_name_selector_template = 'div#productMainContentContainerId li:nth-child({index}) > div > div:nth-child(1) > div > div:nth-child(3) > div:nth-child(3) > span'
|
|
edit_field_selector_template = 'div#productMainContentContainerId li:nth-child({index}) > div > div:nth-child(1) > div > div:nth-child(3) > div:nth-child(2) > div:nth-child(1) > span > input'
|
|
checkbox_selector_template = '#productMainContentContainerId li:nth-child({index}) input[type="checkbox"]'
|
|
; image_selector_template = '#productMainContentContainerId li:nth-child({index}) img.sc-gbvfcU.ezktkd'
|
|
image_selector_template = 'div#productMainContentContainerId li:nth-child({index}) > div > div:nth-child(1) > div > div:nth-child(2) > div > img'
|
|
; price_selector_template = '#productMainContentContainerId li:nth-child({index}) sup'
|
|
price_selector_template = '//*[@id="productMainContentContainerId"]/div[1]/div[2]/div/div/div[2]/div/div[1]/div/div/div[2]/div/div/div[5]/div[1]/div/div/ul/li[{index}]/div/div[1]/div/div[3]/div[1]/div[2]/button/span/sup'
|
|
delete_button_selector_template = '#productMainContentContainerId > div.sc-TOgAA.fZvEqY > div:nth-child(2) > div > div > div:nth-child(2) > div > div.sc-cFShuL.dbIeho > div > div > div.ant-collapse-content.ant-collapse-content-active > div > div > div.sc-fGdiLE.iyXMeU > div.ant-list.ant-list-split.css-1li46mu > div > div > ul > li:nth-child({index}) > div > div:nth-child(1) > div > div:nth-child(2) > div > div.ant-row.ant-row-no-wrap.ant-row-space-between.ant-row-middle.css-1li46mu > div:nth-child(1) > div'
|
|
confirm_delete_button_locator = 'body > div:nth-child(18) > div > div.ant-modal-wrap.ant-modal-confirm-centered.ant-modal-centered > div > div.sc-ddjGPC.jbwEYW > div > div > div > div.ant-modal-confirm-btns > button.ant-btn.css-1li46mu.ant-btn-primary.ant-btn-dangerous'
|
|
add_button_selector_template = '#productMainContentContainerId > div.sc-TOgAA.fZvEqY > div:nth-child(2) > div > div > div:nth-child(2) > div > div.sc-cFShuL.dbIeho > div > div > div.ant-collapse-content.ant-collapse-content-active > div > div > div.sc-fGdiLE.iyXMeU > div.ant-list.ant-list-split.css-1li46mu > div > div > ul > li:nth-child({index}) > div > div:nth-child(1) > div > div:nth-child(2) > div > div > img'
|
|
file_input_locator = 'input[type="file"]'
|
|
low_order_button_locator = 'button:has-text("가격 낮은 순")'
|
|
AtoZ_button_locator = 'button:has-text("A-Z")'
|
|
one_to_nine_button_locator = 'button:has-text("1-99")'
|
|
|
|
[DetailLocators]
|
|
product_detail_input_locator = '//*[@id='detailMainContainerId']/div/div/div[{i}]/textarea'
|
|
product_image_locator = '//*[@id='detailMainContainerId']/div/div/div[{i}]/img'
|
|
|
|
[DetailPageTextTemplates]
|
|
leading_text_1 = '---'
|
|
leading_text_2 = '# 안녕하세요 혜리수샵입니다.'
|
|
leading_text_3 = '### 마켓정책으로 인해 모든 옵션이 노출되지 않을수도 있습니다.'
|
|
leading_text_4 = '### 반드시 옵션사진과 옵션이름을 확인하시고 구매하시기 바랍니다.'
|
|
leading_text_5 = '---'
|
|
# 필요한 만큼 추가 가능
|
|
|
|
[TitleLocators]
|
|
|
|
# 상품명 관련 선택자
|
|
product_name_input_locator = '//*[@id='productMainContentContainerId']/div/div[1]/div[5]/div[1]/span/input'
|
|
product_name_input_css_path = 'div#productMainContentContainerId div:nth-child(5) > div:nth-child(1) > span > input'
|
|
|
|
# 상품명 추천단어 입력칸 선택자
|
|
product_name_suggestion_input_locator = '//*[@id="productMainContentContainerId"]/div/div[1]/div[2]/div[2]/div/span/span/span[1]/input'
|
|
product_name_suggestion_input_css_path = 'div#productMainContentContainerId div:nth-child(2) > div:nth-child(2) > div > span > span > span.ant-input-affix-wrapper.css-1li46mu.ant-input-outlined > input'
|
|
|
|
# 상품명 추천단어 입력 검색 버튼 선택자
|
|
product_name_search_button_locator = '//*[@id="productMainContentContainerId"]/div/div[1]/div[2]/div[2]/div/span/span/span[2]/button'
|
|
product_name_search_button_css_path = 'div#productMainContentContainerId div:nth-child(2) > div:nth-child(2) > div > span > span > span.ant-input-group-addon > button[type="button"]'
|
|
|
|
# 원본 상품명 선택자
|
|
original_product_name_locator = '//*[@id="productMainContentContainerId"]/div/div[1]/div[6]/div[1]/div/span'
|
|
original_product_name_css_path = 'div#productMainContentContainerId div.sc-aNeao.tNLFa > div.ant-flex.css-1li46mu.ant-flex-align-stretch.ant-flex-vertical > div:nth-child(1) > div > span'
|
|
|
|
# 상품명의 경고단어 삭제 버튼 선택자
|
|
product_name_warning_delete_button_locator = '//*[@id="productMainContentContainerId"]/div/div[1]/div[6]/div[3]/div[2]/div/button'
|
|
product_name_warning_delete_button_css_path = 'div#productMainContentContainerId div:nth-child(2) > div > button[type="button"]'
|
|
|
|
# 카테고리 관련 선택자
|
|
category_suggestion_button_locator = '//*[@id='productMainContentContainerId']/div/div[1]/div[5]/div[2]/button'
|
|
category_suggestion_button_css_path = 'div#productMainContentContainerId div:nth-child(2) > button[type="button"]'
|
|
|
|
# 카테고리 선택자 - 인증 여부에 따른 분기
|
|
category_main_selector_with_cp = 'div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=1'
|
|
category_main_selector_with_ss = 'div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=2'
|
|
category_main_selector_with_esm = 'div#productMainContentContainerId div.ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow >> nth=3'
|
|
; category_main_selector_with_cp = '#productMainContentContainerId .ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow:nth-of-type(1)'
|
|
; category_main_selector_with_ss = '#productMainContentContainerId .ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow:nth-of-type(2)'
|
|
; category_main_selector_with_esm = '#productMainContentContainerId .ant-select.ant-select-outlined.css-1li46mu.ant-select-single.ant-select-show-arrow:nth-of-type(3)'
|
|
category_text_locator = 'div.ant-col.css-1li46mu:nth-child(1)'
|
|
category_text_locator_certified = 'div.ant-col.css-1li46mu:nth-child(2)'
|
|
; category_text_without_certification_locator = 'div.ant-col.css-1li46mu:nth-child(1)'
|
|
|
|
[BrowserControl]
|
|
# 크롬 창 이름
|
|
chrome_window_name = '퍼센티 - 셀러들을 위한 AI 구매대행 솔루션 - Chrome'
|
|
|
|
# 관리자 로그인 관련 선택자
|
|
login_email_locator = 'input[placeholder="이메일 주소 입력"]'
|
|
login_password_locator = 'input[placeholder="영문/숫자/특수문자의 조합 (6~15자리)"]'
|
|
login_button_locator = 'button:has-text("로그인 하기")'
|
|
|
|
# 직원 로그인 관련 선택자
|
|
staff_id_locator = 'input[placeholder="직원 아이디 입력"]'
|
|
staff_login_button_locator = 'button:has-text("직원 로그인 하기")'
|
|
admin_toggle_locator = 'button[role="switch"]'
|
|
|
|
# 광고 다이얼로그 관련 선택자
|
|
; close_ad_dialog_locator = 'div.ant-modal-wrap.ant-modal-centered'
|
|
close_ad_dialog_locator = 'div[role="dialog"]'
|
|
close_ad_button_locator = 'div.ant-modal-footer > div > div > button[type='button'].ant-btn.css-1li46mu.ant-btn-default'
|
|
|
|
# 상품 관련 선택자
|
|
; product_name_template_xpath = '/html/body/div[1]/div/div/div/div/main/div/div[2]/div[2]/div[3]/div/div/ul/div[{index}]/div/li/div/div/div[2]/div/div/div[1]/div[1]/span[2]'
|
|
product_name_template = 'div#root div:nth-child({index}) > div > li > div > div > div:nth-child(2) > div > div > div.ant-col.css-1li46mu > div.sc-ktPPKK.ezbvYT > span.sc-ecPEgm.gmiQgL.Body3Regular14.CharacterPrimary85'
|
|
product_price_template = 'div#root div:nth-child({index}) > div > li > div > div > div:nth-child(2) > div > div > div.ant-col.css-1li46mu > span.price'
|
|
product_image_template = 'div#root div:nth-child({index}) > div > li > div > div > div:nth-child(2) > div > img'
|
|
|
|
product_name_for_ed_template = '//*[@id="root"]/div/div/div/div/main/div/div[2]/div[3]/div[2]/div/div/div/div/div[2]/table/tbody/tr[{index}]/td[2]/div/div/div/div[2]/div[2]/span'
|
|
product_price_for_ed_template = '//*[@id="root"]/div/div/div/div/main/div/div[2]/div[3]/div[2]/div/div/div/div/div[2]/table/tbody/tr[{index}]/td[2]/div/div/div/div[2]/div[2]/div[1]/div[2]/span[2]'
|
|
product_image_for_ed_template = '//*[@id="root"]/div/div/div/div/main/div/div[2]/div[3]/div[2]/div/div/div/div/div[2]/table/tbody/tr[{index}]/td[2]/div/div/div/div[1]/span/div/div[1]/img'
|
|
|
|
|
|
|
|
|
|
|
|
|
|
# 상품 편집 및 페이지 이동 관련 선택자
|
|
; product_edit_button = 'button:has-text("세부사항 수정 및 업로드")'
|
|
product_edit_button_template = '//button[span[text()="세부사항 수정 및 업로드"]]'
|
|
|
|
next_page_button_template = 'li.ant-pagination-item[title="{page_number}"]'
|
|
new_product_page_locator = 'span.ant-menu-title-content:has-text("신규 상품 등록")'
|
|
current_page_locator = 'li.ant-pagination-item.ant-pagination-item-active'
|
|
|
|
; total_product_count_locator = '#root > div > div > div > div > main > div > div.sc-ezreuY.kYrYVh > div.sc-dChVcU.cRrUlt > div.sc-izQBue.dxiUJm > div > div:nth-child(1) > label > span:nth-child(2)'
|
|
total_product_count_locator = '//*[@id="root"]/div/div/div/div/main/div/div[2]/div[2]/div[2]/div/div[1]/label/span[2]'
|
|
total_product_count_for_registed_locator = '//*[@id="root"]/div/div/div/div/main/div/div[2]/div[3]/div[2]/div/div/div/div/div[1]/table/thead/tr/th[2]/div/span'
|
|
|
|
|
|
|
|
# 편집페이지 관련 선택자
|
|
title_tab_locator = 'div.ant-tabs-tab:has-text("상품명 / 카테고리")'
|
|
option_tab_locator = 'div.ant-tabs-tab:has-text("옵션")'
|
|
price_tab_locator = 'div.ant-tabs-tab:has-text("가격")'
|
|
tag_tab_locator = 'div.ant-tabs-tab:has-text("키워드")'
|
|
thumb_tab_locator = 'div.ant-tabs-tab:has-text("썸네일")'
|
|
detail_tab_locator = 'div.ant-tabs-tab:has-text("상세페이지")'
|
|
upload_tab_locator = 'div.ant-tabs-tab:has-text("업로드")'
|
|
|
|
# 상세페이지 소스 관련 선택자
|
|
source_button_locator = 'button[data-cke-tooltip-text="소스"]'
|
|
ck_source_editing_area_locator = 'div.ck-source-editing-area'
|
|
|
|
# 옵션 입력 필드
|
|
option_input_field_locator = 'div#productMainContentContainerId > div > div > div:nth-child(2) > div:nth-child(2) > div:nth-child(2) > div'
|
|
|
|
# Save
|
|
save_button_locator = 'button:has-text("저장하기")'
|
|
|
|
[CategoryMargins]
|
|
categories = 가구, 농기구
|
|
|
|
[가구]
|
|
threshold_1 = 100000 # 10만원
|
|
extra_margin_1 = 10000 # 2만원 초과마다 1만원 추가
|
|
unit_1 = 20000
|
|
|
|
threshold_2 = 200000 # 20만원
|
|
extra_margin_2 = 15000 # 2만원 초과마다 1.5만원 추가
|
|
unit_2 = 20000
|
|
|
|
[농기구]
|
|
threshold_1 = 100000 # 10만원
|
|
extra_margin_1 = 5000 # 2만원 초과마다 0.5만원 추가
|
|
unit_1 = 20000
|
|
|
|
threshold_2 = 200000 # 20만원
|
|
extra_margin_2 = 10000 # 2만원 초과마다 1만원 추가
|
|
unit_2 = 20000
|