ChangePercenty/PROMPT

224 lines
30 KiB
Plaintext

아래와 같은 동작을 하는 프로그램이 필요해.
node.js나 파이썬등으로 만들면 좋겠어. GUI 라이브러리는 해당 언어에 맞는 걸로, 예쁘고 세련되고 편리하게 만들어지면 좋겠어.
웹 라이브러리는 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