231 lines
31 KiB
Plaintext
231 lines
31 KiB
Plaintext
나는 해외구매대행 온라인 쇼핑몰을 운영하면서 필요한 파이썬으로 코딩하고 프로그램을 만드는 초보코더 김땡땡이야.
|
|
너는 이쪽 온라인쇼핑몰 관련 프로그램을 만드는 꼼꼼하고 친절한 최고의 파이썬, js 코딩 전문 프로그래머야.
|
|
이쪽분야에서는 너를 따라갈 사람이 없을만큼 시작부터 마지막까지 프로그램코드를 매우 세세하게 만들어줘서 바로 쓸수있게 해주는 최고 전문가지.
|
|
아래에 내가 원하는프로그램을 차근차근 step by step으로 해보자. let's start sept by step
|
|
|
|
한글로 얘기해.
|
|
|
|
아래와 같은 동작을 하는 프로그램이 필요해.파이썬으로 만들면 좋겠어.
|
|
GUI 라이브러리 tk를 제외한 해당 언어에 맞는 걸로, 예쁘고 세련되고 편리하게 만들어지면 좋겠어.
|
|
웹 라이브러리는 PLAYWRIGHT 와 같이 최근의 기술로 만들어진걸 사용해줘.
|
|
로그모듈을 사용해 각 기능들을 모듈화해서 디버깅과 관리효율을 증대시키고, 로그파일기록과 콘솔출력, 철저하고 자세한 주석, 엄격한 예외관리를 통한 프로그램 신뢰성 향상에 중점을 두어야 해.
|
|
|
|
[동작]
|
|
퍼센티 페이지에 접속 후 1사업자, 2사업자 등 각 사업자의 api키를 설정해주는 프로그램이야.
|
|
|
|
프로그램이 시작되면 GUI 창이 생기고 그 모양은 아래와 같아. GUI창에서 적용할 사업자번호를 클릭하고 적용시키면 선택한 설정을 가지고 www.percenty.com 사이트에 접속 후 로그인을 하고, 마켓설정의 api키들을 교체하는 프로그램이야.
|
|
미리 저장된 CONFIG.INI 파일에서 각 사업자와 마켓에 해당하는 설정값들을 불러와.
|
|
|
|
마켓설정은 쿠팡, 지마켓, 옥션, 11번가, 스마트스토어, 롯데온 등이 있고 해당 마켓의 API설정으로 GUI창에서 설정한 내용으로 바꾸고 저장하는 프로그램이야.
|
|
스마트스토어를 제외한 나머지 스토어는 값들을 입력 후 api검증 버튼을 누르고, 검증완료 텍스트를 확인하면 되.
|
|
스마트스토어는 업로드할 계정 설정 버튼을 누르고 발생하는 팝업창에서 해당 아이디와 비밀번호를 채워넣고 로그인 버튼을 누른 후, 로그인이 완료되면 해당 페이지에서 로그인된 id값을 가져와서 로그인시의 아이디와 일치하는지 여부를 확인 후 팝업창을 종료하면 되.
|
|
그리고 API검증 버튼을 눌러 검증완료 텍스트를 확인하면 되
|
|
|
|
[GUI 구성]
|
|
항상위 체크버튼 구현.
|
|
설정 불러오기, 설정 저장하기 버튼 구성.
|
|
프로그램이 시작되면 마지막 실행시 저장되었던 설정을 자동으로 불러오고 해당 설정이 없을 경우(ex. 최초 실행 등) 그냥 실행해.
|
|
GUI창의 구성은 탭으로 10개로 구성되어 있어.5개의 사업자를 쓰겠다는 말이야.
|
|
각 탭의 이름은 1사업자, 2사업자 등이야.
|
|
각 사업자 탭 내부의 정보구역에 표시 되는 사업자 기본정보는 다음과 같아.
|
|
사업자 이름, 사업자 번호, 사업자 전화번호, 사업장 주소, 연결된 카드.
|
|
각 사업자 탭 내부의 마켓설정 구역에는 각 마켓의 설정값들이 존재해. 그 설정값들은 아래의 웹요소에 목록이 있어.
|
|
|
|
|
|
탭설정 바깥에는 확인버튼과 종료버튼이 존재해.
|
|
확인버튼을 누르면 웹브라우저가 실행되면서 설정값들을 바꾸고 저장해.
|
|
모든 설정이 끝나면 완료 메세지를 띄우고 프로그램을 종료해.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
[웹요소]
|
|
|
|
홈페이지 로그인페이지 이동 버튼 css : ".signList > .ant-btn-default > span"
|
|
|
|
이메일 입력칸 : ".ant-input:nth-child(4)"
|
|
비밀번호 입력칸 : ".ant-input:nth-child(1)"
|
|
로그인버튼 : ".ant-btn-primary"
|
|
|
|
[팝업 다이알로그]
|
|
요소 : <div role="dialog" aria-labelledby=":r2a:" aria-modal="true" class="ant-modal css-1li46mu" style="width: 720px;"><div tabindex="0" aria-hidden="true" style="width: 0px; height: 0px; overflow: hidden; outline: none;"></div><div class="ant-modal-content"><button type="button" aria-label="Close" class="ant-modal-close"><span class="ant-modal-close-x"><span role="img" aria-label="close" class="anticon anticon-close ant-modal-close-icon"><svg fill-rule="evenodd" viewBox="64 64 896 896" focusable="false" data-icon="close" width="1em" height="1em" fill="currentColor" aria-hidden="true"><path d="M799.86 166.31c.02 0 .04.02.08.06l57.69 57.7c.04.03.05.05.06.08a.12.12 0 010 .06c0 .03-.02.05-.06.09L569.93 512l287.7 287.7c.04.04.05.06.06.09a.12.12 0 010 .07c0 .02-.02.04-.06.08l-57.7 57.69c-.03.04-.05.05-.07.06a.12.12 0 01-.07 0c-.03 0-.05-.02-.09-.06L512 569.93l-287.7 287.7c-.04.04-.06.05-.09.06a.12.12 0 01-.07 0c-.02 0-.04-.02-.08-.06l-57.69-57.7c-.04-.03-.05-.05-.06-.07a.12.12 0 010-.07c0-.03.02-.05.06-.09L454.07 512l-287.7-287.7c-.04-.04-.05-.06-.06-.09a.12.12 0 010-.07c0-.02.02-.04.06-.08l57.7-57.69c.03-.04.05-.05.07-.06a.12.12 0 01.07 0c.03 0 .05.02.09.06L512 454.07l287.7-287.7c.04-.04.06-.05.09-.06a.12.12 0 01.07 0z"></path></svg></span></span></button><div class="ant-modal-header"><div class="ant-modal-title" id=":r2a:"><div>공지사항</div></div></div><div class="ant-modal-body"><div class="sc-gEvEer hOfiqw"><div class="ant-row css-1li46mu"><span class="sc-fqkvVR caRzHg H5Bold16 CharacterTitle85">[설문조사] 오픈마켓 추가 설문</span></div><div class="ant-row css-1li46mu" style="margin-top: 10px;"><span class="sc-fqkvVR caRzHg Body3Regular14 CharacterDisabledPlaceholder25">2024/04/05 14:50</span></div><div class="ant-row css-1li46mu" style="margin-top: 10px;"><div class="sc-eqUAAy hBSfpi"><p>안녕하세요, 퍼센티입니다.</p><p><br></p><p>기존 업로드 오픈마켓 외에 추가적으로 셀러님들께 필요한 오픈마켓이 어떤 곳들일지 한번 여쭙고자 합니다.</p><p><br></p><p>1분 미만의 짧은 설문이므로, 잠시만 시간내어 참여해주시면 감사드리겠습니다.</p><p><br></p><p>아래 링크를 통해 참여해주시면 됩니다.</p><p><br></p><p><a href="https://tally.so/r/3EXekl" rel="noopener noreferrer" target="_blank" class="ql-color-#37352f">https://tally.so/r/3EXekl</a></p><p><br></p><p><span class="ql-color-#37352f">감사합니다.</span></p></div></div></div></div><div class="ant-modal-footer"><button type="button" class="ant-btn css-1li46mu ant-btn-default" style="display: none;"><span>취소</span></button><button type="button" class="ant-btn css-1li46mu ant-btn-primary"><span>확인</span></button></div></div><div tabindex="0" aria-hidden="true" style="width: 0px; height: 0px; overflow: hidden; outline: none;"></div></div>
|
|
|
|
[팝업 다이알로그의 확인버튼]
|
|
XPATH : body > div:nth-child(10) > div > div.ant-modal-wrap.ant-modal-centered > div > div.ant-modal-content > div.ant-modal-footer > button.ant-btn.css-1li46mu.ant-btn-primary
|
|
|
|
[마켓설정 버튼]
|
|
요소(탭선택상태) : <li role="menuitem" tabindex="-1" aria-disabled="false" class="ant-menu-item ant-menu-item-selected ant-menu-item-only-child" data-menu-id="rc-menu-uuid-98154-1-MARKET_SETTING" style="padding-left: 48px;"><span class="ant-menu-title-content">마켓 설정</span></li>
|
|
요소(탭선택안된상태) : <li role="menuitem" tabindex="-1" aria-disabled="false" class="ant-menu-item ant-menu-item-only-child" data-menu-id="rc-menu-uuid-98154-1-MARKET_SETTING" style="padding-left: 48px;"><span class="ant-menu-title-content">마켓 설정</span></li>
|
|
XPATH : /html/body/div[1]/div/div/div/div/aside/div/ul/li[7]/ul/li[2]
|
|
|
|
|
|
[각 마켓의 탭 버튼]
|
|
쿠팡
|
|
요소(탭선택상태) : <div data-node-key="cp" class="ant-tabs-tab ant-tabs-tab-active"><div role="tab" aria-selected="true" class="ant-tabs-tab-btn" tabindex="0" id="rc-tabs-0-tab-cp" aria-controls="rc-tabs-0-panel-cp">쿠팡</div></div>
|
|
요소(탭선택안된상태) : <div data-node-key="cp" class="ant-tabs-tab"><div role="tab" aria-selected="false" class="ant-tabs-tab-btn" tabindex="0" id="rc-tabs-2-tab-cp" aria-controls="rc-tabs-2-panel-cp">쿠팡</div></div>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[1]/div[1]/div/div[1]
|
|
스마트스토어
|
|
요소(탭선택상태) :<div data-node-key="ss" class="ant-tabs-tab ant-tabs-tab-active"><div role="tab" aria-selected="true" class="ant-tabs-tab-btn" tabindex="0" id="rc-tabs-2-tab-ss" aria-controls="rc-tabs-2-panel-ss">스마트스토어</div></div>
|
|
요소(탭선택안된상태) : <div data-node-key="ss" class="ant-tabs-tab"><div role="tab" aria-selected="false" class="ant-tabs-tab-btn" tabindex="0" id="rc-tabs-2-tab-ss" aria-controls="rc-tabs-2-panel-ss">스마트스토어</div></div>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[1]/div[1]/div/div[2]
|
|
옥션지마켓
|
|
요소(탭선택안된상태) : <div data-node-key="esm" class="ant-tabs-tab"><div role="tab" aria-selected="false" class="ant-tabs-tab-btn" tabindex="0" id="rc-tabs-2-tab-esm" aria-controls="rc-tabs-2-panel-esm">옥션/G마켓 (ESM 2.0)</div></div>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[1]/div[1]/div/div[3]
|
|
11번가-일반
|
|
요소(탭선택안된상태) : <div data-node-key="est" class="ant-tabs-tab"><div role="tab" aria-selected="false" class="ant-tabs-tab-btn" tabindex="0" id="rc-tabs-2-tab-est" aria-controls="rc-tabs-2-panel-est">11번가-일반</div></div>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[1]/div[1]/div/div[4]
|
|
11번가-글로벌
|
|
요소(탭선택안된상태) : <div data-node-key="est_global" class="ant-tabs-tab"><div role="tab" aria-selected="false" class="ant-tabs-tab-btn" tabindex="0" id="rc-tabs-2-tab-est_global" aria-controls="rc-tabs-2-panel-est_global">11번가-글로벌</div></div>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[1]/div[1]/div/div[5]
|
|
롯데온
|
|
요소(탭선택안된상태) : <div data-node-key="lotteon" class="ant-tabs-tab"><div role="tab" aria-selected="false" class="ant-tabs-tab-btn" tabindex="0" id="rc-tabs-2-tab-lotteon" aria-controls="rc-tabs-2-panel-lotteon">롯데온</div></div>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[1]/div[1]/div/div[6]
|
|
|
|
[쿠팡설정]
|
|
쿠팡ID
|
|
요소 : <input placeholder="미설정" class="ant-input css-1li46mu ant-input-outlined sc-gYmrxV hopcUG Body3Regular14 CharacterTitle85" type="text" value="leensoo1nt">
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div/div/div[1]/div/div[2]/div/div[2]/div[1]/input
|
|
업체 코드
|
|
요소 : <input placeholder="미설정" class="ant-input css-1li46mu ant-input-outlined sc-gYmrxV hopcUG Body3Regular14 CharacterTitle85" type="text" value="A01040652">
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div/div/div[1]/div/div[2]/div/div[2]/div[2]/input
|
|
Access Key
|
|
요소 : <input placeholder="미설정" class="ant-input css-1li46mu ant-input-outlined sc-gYmrxV hopcUG Body3Regular14 CharacterTitle85" type="text" value="f14d6bbc-e177-4597-9a75-891eb981706a">
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div/div/div[1]/div/div[2]/div/div[2]/div[3]/input
|
|
Secret Key
|
|
요소 : <input placeholder="미설정" class="ant-input css-1li46mu ant-input-outlined sc-gYmrxV hopcUG Body3Regular14 CharacterTitle85" type="text" value="317b542baea78f09f79383178e6295aab7c45f34">
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div/div/div[1]/div/div[2]/div/div[2]/div[4]/input
|
|
'주문 수집 기능' 토글스위치
|
|
체크된 요소 상태 : <button type="button" role="switch" aria-checked="true" class="ant-switch css-1li46mu ant-switch-checked" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
체크안된 요소 상태 :<button type="button" role="switch" aria-checked="false" class="ant-switch css-1li46mu" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div/div/div[1]/div/div[2]/div/div[2]/div[5]/button
|
|
'API 연결 끊기' 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-default"><span>API 연결 끊기</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div/div/div[1]/div/div[2]/div/div[2]/div[6]/button[1]
|
|
'API 검증' 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-primary"><span>API 검증</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div/div/div[1]/div/div[2]/div/div[2]/div[6]/button[2]
|
|
'검증완료' 상태
|
|
요소 : <sup data-show="true" class="ant-scroll-number ant-badge-count ant-badge-multiple-words ant-badge-color-blue" title="검증 완료" style="color: rgb(255, 255, 255);">검증 완료</sup>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div/div/div[1]/div/div[1]/span/div/span[2]/sup
|
|
|
|
|
|
[스마트스토어]
|
|
API 검증 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-primary"><span>API 검증</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[2]/div/div[1]/div/div[2]/div/div/div[5]/button[3]
|
|
'주문 수집 기능' 토글스위치
|
|
체크된 요소 상태 : <button type="button" role="switch" aria-checked="true" class="ant-switch css-1li46mu ant-switch-checked" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
체크안된 요소 상태 : <button type="button" role="switch" aria-checked="false" class="ant-switch css-1li46mu" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[2]/div/div[1]/div/div[2]/div/div/div[4]/button
|
|
'API 연결 끊기' 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-default"><span>API 연결 끊기</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[2]/div/div[1]/div/div[2]/div/div/div[5]/button[1]
|
|
애플리케이션 ID (주문 수집 기능 체크되어있을때만 나타남)
|
|
요소 : <input placeholder="미설정" class="ant-input css-1li46mu ant-input-outlined sc-puSWb eFwtDG Body3Regular14 CharacterTitle85" type="text" value="3hCOwBYGxVucAlW8MvaL8R">
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[2]/div/div[1]/div/div[2]/div/div/div[2]/input
|
|
애플리케이션 시크릿 (주문 수집 기능 체크되어있을때만 나타남)
|
|
요소 : <input placeholder="미설정" class="ant-input css-1li46mu ant-input-outlined sc-puSWb eFwtDG Body3Regular14 CharacterTitle85" type="text" value="$2a$04$eaBLGo/9da1AcmzjstQLXe">
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[2]/div/div[1]/div/div[2]/div/div/div[3]/input
|
|
'검증완료' 상태
|
|
요소 : <sup data-show="true" class="ant-scroll-number ant-badge-count ant-badge-multiple-words ant-badge-color-blue" title="검증 완료" style="color: rgb(255, 255, 255);">검증 완료</sup>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[2]/div/div[1]/div/div[1]/span/div/span[2]/sup
|
|
업로드할 계정 설정하기(버튼 클릭시 팝업창이 나오고, 그 창에서 로그인완료 후 팝업창을 끄기 해야함)
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-primary ant-btn-background-ghost"><span>업로드할 계정 설정하기</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[2]/div/div[1]/div/div[2]/div/div/div[5]/button[2]
|
|
팝업창의 아이디 입력칸
|
|
요소 : <input type="text" placeholder="아이디 또는 이메일 주소" class="Login_ipt__cPqIR" value="leensoo1nt@gmail.com">
|
|
XPATH : /html/body/div[1]/div/div[1]/div/div/div[4]/div[1]/div/ul[1]/li[1]/input
|
|
팝업창의 비밀번호 입력칸
|
|
요소 : <input type="password" placeholder="비밀번호" maxlength="20" class="Login_ipt__cPqIR" value="gytkd9570!">
|
|
XPATH : /html/body/div[1]/div/div[1]/div/div/div[4]/div[1]/div/ul[1]/li[2]/input
|
|
팝업창의 로그인버튼
|
|
요소 : <button type="button" class="Button_btn__enzXE Button_btn_plain__1j7dG"><span class="Button_txt__c0W-8">로그인</span></button>
|
|
XPATH : /html/body/div[1]/div/div[1]/div/div/div[4]/div[1]/div/div/button
|
|
팝업창이 현재 로그인상태일 경우 나타나는 선택버튼 (현재 로그인상태일 경우에만 나타남)
|
|
요소 : <button type="button" class="Login_btn_login__2TtMz"><div class="Login_img_box__2M33-"><img src="data:image/png;base64,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" width="48" height="48" alt="네이버 커머스ID"></div><span class="Login_user__120IT">한*상 님</span><span class="Login_id__18ENQ">le********@gmail.com</span><img src="/static/media/icon-arrow-7x13.3211959f.svg" alt=" " class="Login_ico_arrow__3La4w"></button>
|
|
XPATH : /html/body/div[1]/div/div[1]/div/div/div[4]/button
|
|
팝업창의 로그인 완료시 로그인 성공 확인용 요소 (로그인아이디)
|
|
요소 : <span class="login-id text-overflow">leensoo1nt@gmail.com</span>
|
|
XPATH : /html/body/ui-view[1]/div[3]/div/div[1]/nav/div/ul/li[1]/a/span[1]
|
|
|
|
|
|
[옥션지마켓]
|
|
옥션ID
|
|
요소 : <input placeholder="미설정" class="ant-input css-1li46mu ant-input-outlined sc-iLyOTd bLNUnW Body3Regular14 CharacterTitle85" type="text" value="leensoo2nt">
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[3]/div/div[1]/div/div[2]/div/div/div[1]/input
|
|
G마켓 ID
|
|
요소 : <input placeholder="미설정" class="ant-input css-1li46mu ant-input-outlined sc-iLyOTd bLNUnW Body3Regular14 CharacterTitle85" type="text" value="leensoo2nt">
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[3]/div/div[1]/div/div[2]/div/div/div[2]/input
|
|
'검증완료' 상태
|
|
요소 : <sup data-show="true" class="ant-scroll-number ant-badge-count ant-badge-multiple-words ant-badge-color-blue" title="검증 완료" style="color: rgb(255, 255, 255);">검증 완료</sup>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[3]/div/div[1]/div/div[1]/span/div/span[2]/sup
|
|
'API 연결 끊기' 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-default"><span>API 연결 끊기</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[3]/div/div[1]/div/div[2]/div/div/div[4]/button[1]
|
|
API 검증 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-primary"><span>API 검증</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[3]/div/div[1]/div/div[2]/div/div/div[4]/button[2]
|
|
'주문 수집 기능' 토글스위치
|
|
체크된 요소 상태 : <button type="button" role="switch" aria-checked="true" class="ant-switch css-1li46mu ant-switch-checked" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
체크안된 요소 상태 : <button type="button" role="switch" aria-checked="false" class="ant-switch css-1li46mu" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[3]/div/div[1]/div/div[2]/div/div/div[3]/button
|
|
|
|
|
|
[11번가-일반]
|
|
API KEY
|
|
요소 : <input placeholder="미설정" class="ant-input css-1li46mu ant-input-outlined sc-fQQAXF fGASgw Body3Regular14 CharacterTitle85" type="text" value="">
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[4]/div/div[1]/div/div[2]/div/div/div[1]/input
|
|
'주문 수집 기능' 토글스위치
|
|
체크된 요소 상태 : <button type="button" role="switch" aria-checked="true" class="ant-switch css-1li46mu ant-switch-checked" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
체크안된 요소 상태 : <button type="button" role="switch" aria-checked="false" class="ant-switch css-1li46mu" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[4]/div/div[1]/div/div[2]/div/div/div[2]/button
|
|
API 검증 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-primary"><span>API 검증</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[4]/div/div[1]/div/div[2]/div/div/div[3]/button[2]
|
|
'API 연결 끊기' 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-default"><span>API 연결 끊기</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[4]/div/div[1]/div/div[2]/div/div/div[3]/button[1]
|
|
'검증완료' 상태 (아래 요소의 상태는 검증필요 상태)
|
|
요소 : <sup data-show="true" class="ant-scroll-number ant-badge-count ant-badge-multiple-words ant-badge-color-red" title="검증 필요" style="color: rgb(255, 255, 255);">검증 필요</sup>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[4]/div/div[1]/div/div[1]/span/div/span[2]/sup
|
|
|
|
[11번가-글로벌]
|
|
API KEY
|
|
요소 : <input placeholder="미설정" class="ant-input css-1li46mu ant-input-outlined sc-fwRBTg biDjpj Body3Regular14 CharacterTitle85" type="text" value="ab30cb8dbe7957718c895f8e2a721c07">
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[5]/div/div[1]/div/div[2]/div/div/div[1]/input
|
|
'주문 수집 기능' 토글스위치
|
|
체크된 요소 상태 : <button type="button" role="switch" aria-checked="true" class="ant-switch css-1li46mu ant-switch-checked" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
체크안된 요소 상태 : <button type="button" role="switch" aria-checked="false" class="ant-switch css-1li46mu" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[5]/div/div[1]/div/div[2]/div/div/div[2]/button
|
|
API 검증 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-primary"><span>API 검증</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[5]/div/div[1]/div/div[2]/div/div/div[3]/button[2]
|
|
'API 연결 끊기' 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-default"><span>API 연결 끊기</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[5]/div/div[1]/div/div[2]/div/div/div[3]/button[1]
|
|
'검증완료' 상태
|
|
요소 : <sup data-show="true" class="ant-scroll-number ant-badge-count ant-badge-multiple-words ant-badge-color-blue" title="검증 완료" style="color: rgb(255, 255, 255);">검증 완료</sup>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[5]/div/div[1]/div/div[1]/span/div/span[2]/sup
|
|
|
|
|
|
[롯데온]
|
|
API KEY
|
|
요소 : <input placeholder="미설정" class="ant-input css-1li46mu ant-input-outlined sc-iKfoIU fKbwJK Body3Regular14 CharacterTitle85" type="text" value="5d5b2cb498f3d20001665f4e87a5642326c84630b01d52741d9779cd">
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[6]/div/div[1]/div/div[2]/div/div/div[1]/input
|
|
'주문 수집 기능' 토글스위치
|
|
체크된 요소 상태 : <button type="button" role="switch" aria-checked="true" class="ant-switch css-1li46mu ant-switch-checked" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
체크안된 요소 상태 : <button type="button" role="switch" aria-checked="false" class="ant-switch css-1li46mu" style="margin-top: 12px;"><div class="ant-switch-handle"></div><span class="ant-switch-inner"><span class="ant-switch-inner-checked"></span><span class="ant-switch-inner-unchecked"></span></span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[6]/div/div[1]/div/div[2]/div/div/div[2]/button
|
|
API 검증 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-primary"><span>API 검증</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[6]/div/div[1]/div/div[2]/div/div/div[3]/button[2]
|
|
'API 연결 끊기' 버튼
|
|
요소 : <button type="button" class="ant-btn css-1li46mu ant-btn-default"><span>API 연결 끊기</span></button>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[6]/div/div[1]/div/div[2]/div/div/div[3]/button[1]
|
|
'검증완료' 상태
|
|
요소 : <sup data-show="true" class="ant-scroll-number ant-badge-count ant-badge-multiple-words ant-badge-color-blue" title="검증 완료" style="color: rgb(255, 255, 255);">검증 완료</sup>
|
|
XPATH : /html/body/div[1]/div/div/div/div/main/div[2]/div/div[2]/div/div[6]/div/div[1]/div/div[1]/span/div/span[2]/sup
|