Merge branch 'pyside6' into thread
This commit is contained in:
commit
8fbe459221
51258
appTranslator.log
51258
appTranslator.log
File diff suppressed because one or more lines are too long
29
config.ini
29
config.ini
|
|
@ -39,8 +39,12 @@ option_box_selector = '//*[@id="productMainContentContainerId"]/div[1]/div[2]/di
|
|||
excluded_option_marker = '.bXsMpn.sc-dfauwV'
|
||||
; delete_button_selector = 'div#productMainContentContainerId div.lesrZh.sc-bYHUQc:nth-child({index}) span:has-text("삭제")'
|
||||
; delete_button_selector = 'div#productMainContentContainerId div.lesrZh.sc-bYHUQc:nth-child({index}) div.sc-igZIGL.kQDmyq'
|
||||
delete_button_selector = '.kQDmyq.sc-igZIGL'
|
||||
fallback1_delete_button_selector = '//*[@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[2]/div[1]/div/span'
|
||||
; delete_button_selector = '.kQDmyq.sc-igZIGL'
|
||||
|
||||
delete_button_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[2]/div[1]/div/span'
|
||||
fallback1_delete_button_selector_template = 'div#productMainContentContainerId 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 > span'
|
||||
|
||||
|
||||
confirm_delete_button_selector = '.ant-modal.css-1li46mu.ant-modal-confirm.ant-modal-confirm-confirm button:has-text("삭제")'
|
||||
add_button_selector2 = 'div#productMainContentContainerId div.lesrZh.sc-bYHUQc:nth-child({index}) > .sc-dRGYJT.hmQUGb'
|
||||
add_button_selector = '//*[@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/img'
|
||||
|
|
@ -175,24 +179,3 @@ option_input_field_locator = 'div#productMainContentContainerId > div > div > di
|
|||
|
||||
# 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
|
||||
|
|
|
|||
|
|
@ -90,8 +90,8 @@ class LocatorManager:
|
|||
'price_selector_template': self.config.get('OptionLocators', 'price_selector_template').strip("'"),
|
||||
'option_box_selector': self.config.get('OptionLocators', 'option_box_selector').strip("'"),
|
||||
'excluded_option_marker': self.config.get('OptionLocators', 'excluded_option_marker').strip("'"),
|
||||
'delete_button_selector': self.config.get('OptionLocators', 'delete_button_selector').strip("'"),
|
||||
'fallback1_delete_button_selector': self.config.get('OptionLocators', 'fallback1_delete_button_selector').strip("'"),
|
||||
'delete_button_selector_template': self.config.get('OptionLocators', 'delete_button_selector_template').strip("'"),
|
||||
'fallback1_delete_button_selector_template': self.config.get('OptionLocators', 'fallback1_delete_button_selector_template').strip("'"),
|
||||
'confirm_delete_button_selector': self.config.get('OptionLocators', 'confirm_delete_button_selector').strip("'"),
|
||||
'add_button_selector': self.config.get('OptionLocators', 'add_button_selector').strip("'"),
|
||||
'file_upload_button_selector': self.config.get('OptionLocators', 'file_upload_button_selector').strip("'"),
|
||||
|
|
|
|||
13
option.py
13
option.py
|
|
@ -34,8 +34,8 @@ class OptionHandler:
|
|||
|
||||
self.option_box_selector = self.locator_manager.get_locator('OptionLocators', 'option_box_selector')
|
||||
self.excluded_option_marker = self.locator_manager.get_locator('OptionLocators', 'excluded_option_marker')
|
||||
self.delete_button_selector = self.locator_manager.get_locator('OptionLocators', 'delete_button_selector')
|
||||
self.fallback1_delete_button_selector = self.locator_manager.get_locator('OptionLocators', 'fallback1_delete_button_selector')
|
||||
self.delete_button_selector_template = self.locator_manager.get_locator('OptionLocators', 'delete_button_selector_template')
|
||||
self.fallback1_delete_button_selector_template = self.locator_manager.get_locator('OptionLocators', 'fallback1_delete_button_selector_template')
|
||||
self.confirm_delete_button_selector = self.locator_manager.get_locator('OptionLocators', 'confirm_delete_button_selector')
|
||||
self.add_button_selector = self.locator_manager.get_locator('OptionLocators', 'add_button_selector')
|
||||
self.file_upload_button_selector = self.locator_manager.get_locator('OptionLocators', 'file_upload_button_selector')
|
||||
|
|
@ -730,7 +730,6 @@ class OptionHandler:
|
|||
# 각 옵션 상자를 순회
|
||||
for index, option_box in enumerate(option_boxes, start=1):
|
||||
# 선택자에서 인덱스를 반영해 동적 선택자를 생성
|
||||
delete_button_selector = self.delete_button_selector.format(index=index)
|
||||
add_button_selector = self.add_button_selector.format(index=index)
|
||||
|
||||
# 옵션 이미지가 존재하는지 확인
|
||||
|
|
@ -766,11 +765,13 @@ class OptionHandler:
|
|||
|
||||
try:
|
||||
# 기본 선택자로 삭제 버튼 찾기
|
||||
delete_button = option_box.locator(self.delete_button_selector)
|
||||
delete_button.set_timeout(5000) # 필요에 따라 타임아웃 설정
|
||||
# delete_button = option_box.query_selector(self.delete_button_selector)
|
||||
delete_button = self.page.locator(f'{self.delete_button_selector_template.format(index=index)}')
|
||||
await delete_button.wait_for(state="attached", timeout=5000) # 타임아웃 설정
|
||||
|
||||
if not await delete_button.is_visible():
|
||||
# fallback으로 재시도
|
||||
delete_button = option_box.locator(f'xpath={self.fallback1_delete_button_selector.format(index=index)}')
|
||||
delete_button = self.page.locator(f'xpath={self.fallback1_delete_button_selector.format(index=index)}')
|
||||
delete_button.set_timeout(5000)
|
||||
|
||||
if await delete_button.is_visible():
|
||||
|
|
|
|||
Binary file not shown.
|
Before Width: | Height: | Size: 99 KiB |
Loading…
Reference in New Issue