그룹선택수정
This commit is contained in:
parent
052b037bd9
commit
fa903a15b5
|
|
@ -177,6 +177,7 @@ class BrowserController(QThread):
|
|||
optionIMGTrans_status = self.toggle_states.get('optionIMGTrans', False)
|
||||
detail_IMGTrans_status = self.toggle_states.get('detail_IMGTrans', False)
|
||||
thumb_status = self.toggle_states.get('thumb', False)
|
||||
debug_mode = self.toggle_states.get('debug_mode', False)
|
||||
|
||||
self.logger.log(f"optionIMGTrans_status: {optionIMGTrans_status}, detail_IMGTrans_status: {detail_IMGTrans_status}, thumb_status: {thumb_status}", level=logging.DEBUG)
|
||||
|
||||
|
|
@ -222,7 +223,7 @@ class BrowserController(QThread):
|
|||
# 브라우저 시작 및 설정
|
||||
self.browser = await self.playwright.chromium.launch_persistent_context(
|
||||
user_data_dir,
|
||||
headless=True,
|
||||
headless=not debug_mode,
|
||||
permissions=["geolocation", "notifications"],
|
||||
geolocation={"latitude": 37.5665, "longitude": 126.9780},
|
||||
locale="ko-KR",
|
||||
|
|
@ -549,21 +550,39 @@ class BrowserController(QThread):
|
|||
async def select_group_index(self, group_index: int):
|
||||
"""그룹 드롭다운 열고 옵션 선택"""
|
||||
try:
|
||||
self.logger.log(f"group_index : {group_index}", level=logging.INFO)
|
||||
|
||||
|
||||
await self.page.evaluate("""
|
||||
const targetElement = Array.from(document.querySelectorAll('span')).find(el => el.textContent.trim() === '수집 상품 목록');
|
||||
if (targetElement) {
|
||||
targetElement.scrollIntoView({ behavior: 'smooth', block: 'center' });
|
||||
}
|
||||
""")
|
||||
|
||||
self.logger.log(f"그룹박스 요소로 스크롤", level=logging.INFO)
|
||||
|
||||
await asyncio.sleep(0.5)
|
||||
await self.page.wait_for_load_state("networkidle")
|
||||
|
||||
group_option_locator = self.group_index_template.format(index=group_index)
|
||||
|
||||
# 드롭다운 열기
|
||||
await self.page.wait_for_selector(self.group_dropdown_locator, timeout=3000)
|
||||
await self.page.click(self.group_dropdown_locator)
|
||||
self.logger.log(f"group_dropdown_locator : {self.group_dropdown_locator}", level=logging.INFO)
|
||||
await self.page.wait_for_selector(self.group_dropdown_locator, timeout=3000, state='visible')
|
||||
await self.page.click(self.group_dropdown_locator, timeout=3000, force=True)
|
||||
self.logger.log("드롭다운을 성공적으로 클릭했습니다.", level=logging.INFO)
|
||||
|
||||
# 드롭다운 열림 상태 확인
|
||||
await self.page.wait_for_selector(self.dropdown_openstatus_locator, timeout=3000, state='visible')
|
||||
self.logger.log(f"dropdown_openstatus_locator : {self.dropdown_openstatus_locator}", level=logging.INFO)
|
||||
await self.page.wait_for_selector(self.dropdown_openstatus_locator, timeout=3000)
|
||||
self.logger.log("드롭다운이 열렸습니다.", level=logging.INFO)
|
||||
|
||||
# 옵션 선택
|
||||
await self.page.wait_for_selector(group_option_locator, timeout=3000)
|
||||
await self.page.click(group_option_locator)
|
||||
# await self.page.wait_for_selector(group_option_locator, timeout=3000)
|
||||
await self.page.click(group_option_locator, timeout=3000)
|
||||
self.logger.log(f"[{group_index}]번 그룹 선택 완료", level=logging.INFO)
|
||||
self.logger.log(f"group_option_locator : {group_option_locator}", level=logging.INFO)
|
||||
|
||||
selected_group_name = await self.page.inner_text(self.selected_group_name_locator)
|
||||
self.logger.log(f"선택된 그룹 이릅 : [{selected_group_name}]", level=logging.INFO)
|
||||
|
|
|
|||
|
|
@ -164,9 +164,10 @@ product_name_for_ed_template = '//*[@id="root"]/div/div/div/div/main/div/div[2]/
|
|||
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'
|
||||
|
||||
|
||||
# 그룹관련 선택자
|
||||
group_dropdown_locator = 'div.ant-select-selector'
|
||||
; group_dropdown_locator = 'div.ant-select-selector'
|
||||
; group_dropdown_locator = 'div.ant-row div.ant-select:nth-of-type(2)'
|
||||
group_dropdown_locator = 'div#root div:nth-child(4) > div > div > span.ant-select-selection-item'
|
||||
dropdown_openstatus_locator = 'div.ant-select-dropdown:not(.ant-select-dropdown-hidden)'
|
||||
group_index_template = 'div.ant-select-item.ant-select-item-option:nth-child({index})'
|
||||
selected_group_name_locator = 'div#root div:nth-child(4) > div > div > span.ant-select-selection-item'
|
||||
|
|
|
|||
11
groupTest.py
11
groupTest.py
|
|
@ -24,7 +24,7 @@ def change_group(selected_group_index: int):
|
|||
# 브라우저 시작 및 설정
|
||||
browser = playwright.chromium.launch_persistent_context(
|
||||
user_data_dir,
|
||||
headless=True,
|
||||
headless=False,
|
||||
permissions=["geolocation", "notifications"],
|
||||
geolocation={"latitude": 37.5665, "longitude": 126.9780},
|
||||
locale="ko-KR",
|
||||
|
|
@ -51,8 +51,8 @@ def change_group(selected_group_index: int):
|
|||
admin_toggle.click() # 관리자 모드에서 직원 모드로 전환
|
||||
|
||||
page.fill('input[placeholder="이메일 주소 입력"]', 'leensoo1nt@gmail.com')
|
||||
page.fill('input[placeholder="직원 아이디 입력"]', 'test')
|
||||
page.fill('input[placeholder="영문/숫자/특수문자의 조합 (6~15자리)"]', 'test')
|
||||
page.fill('input[placeholder="직원 아이디 입력"]', 'uploader')
|
||||
page.fill('input[placeholder="영문/숫자/특수문자의 조합 (6~15자리)"]', 'uploader')
|
||||
page.click('button:has-text("직원 로그인 하기")')
|
||||
|
||||
page.wait_for_selector('div[role="dialog"]', timeout=3000, state='visible')
|
||||
|
|
@ -64,6 +64,8 @@ def change_group(selected_group_index: int):
|
|||
page.wait_for_load_state("networkidle")
|
||||
page.click('span.ant-menu-title-content:has-text("신규 상품 등록")')
|
||||
|
||||
time.sleep(0.5)
|
||||
|
||||
|
||||
page.evaluate("""
|
||||
const dropdown = document.querySelector('input#rc_select_1');
|
||||
|
|
@ -80,7 +82,8 @@ def change_group(selected_group_index: int):
|
|||
print("드롭박스 상위 요소 대기")
|
||||
|
||||
# 드롭박스 열기
|
||||
page.click(group_dropdown_css)
|
||||
group_dropdown_click_css = "div.ant-select-selector:nth-child(1)"
|
||||
page.click(group_dropdown_click_css)
|
||||
print("드롭박스 클릭")
|
||||
|
||||
# 드롭다운 열림 상태 확인
|
||||
|
|
|
|||
4
gui.py
4
gui.py
|
|
@ -1053,6 +1053,8 @@ class AutoPercentyGUI(QWidget):
|
|||
@Slot()
|
||||
def start_browser_thread(self):
|
||||
"""브라우저 스레드 시작 및 GUI 상태 전달"""
|
||||
self.start_chrome_button.setEnabled(False)
|
||||
|
||||
self.browser_controller.start()
|
||||
|
||||
time.sleep(1)
|
||||
|
|
@ -1085,7 +1087,7 @@ class AutoPercentyGUI(QWidget):
|
|||
# 버튼 상태 활성화&비활성화
|
||||
self.PercentyJob_button.setEnabled(True)
|
||||
self.pause_button.setEnabled(True)
|
||||
self.start_chrome_button.setEnabled(False)
|
||||
# self.start_chrome_button.setEnabled(False)
|
||||
|
||||
@Slot(str)
|
||||
def on_browser_error(self, error_message):
|
||||
|
|
|
|||
Loading…
Reference in New Issue