옵션이미지 편집 셀렉터 수정

This commit is contained in:
R5600U_PC 2024-11-01 15:36:00 +09:00
parent c17d3fdbf1
commit 1d0499cd30
4 changed files with 1328 additions and 9 deletions

File diff suppressed because one or more lines are too long

View File

@ -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'

View File

@ -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("'"),

View File

@ -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')
@ -766,11 +766,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():