Sub 신규회원가입()
Dim 통신사 As String
Dim 생년월일 As String
Dim inj As Integer, k As Integer
Dim auth As String
Dim ele As Object
Dim Keys As New Keys
Dim 결과
결과 = MsgBox("신규 회원가입할 회원구분난에 1 을 입력(한명씩)하고 확인으로 누르시오.", vbOKCancel, "디지털배움터 신규 회원가입")
If 결과 = 2 Then GoTo 회원가입9
For inj = 3 To Cells(Rows.Count, 8).End(xlUp).Row
If Cells(inj, 18) = 1 Then GoTo 신규회원가입1
Next
GoTo 회원가입9
신규회원가입1:
Debug.Print inj
Cells(inj, 18) = 0
For k = 2 To 10
If Cells(inj, k) = "" Then
MsgBox inj & "줄 인적사항를 확인바랍니다."
Exit Sub
End If
Next
Worksheets("강사정보").Range("B5") = "TRUE"
Call 크롬드라이버시작
'회원가입
Sel.Get "https://k-dcc.or.kr/usr/signup.do"
'일반회원 클래스 나타날때까지 최대 5초 대기
k = 0
Do While Sel.FindElementsByClass("btnBg01").Count = 0
DoEvents
Sel.Wait 1000
If k > 5 Then
Sel.Close
MsgBox "회원가입 창이 열리지 않습니다" + vbCrLf + "잠시후 다시 시도 해보세요"
End
End If
k = k + 1
Loop
'전체동의
Sel.FindElementByXPath("//*[@id='frm_signup']/div[1]/div[1]/span/label", timeout:=1000, Raise:=False).Click
Sel.Wait 1000
'---------------------------------------------------------
Sel.ExecuteScript ("javascript:$('.usrInfoWrap').show();")
'아이디
Sel.FindElementById("mem_id").SendKeys ""
Sel.Wait 500
Sel.FindElementById("mem_id").SendKeys Cells(inj, 8)
Sel.Wait 600
'중복확인
Sel.FindElementByXPath("//*[@id='frm_signup']/div[6]/div[2]/table/tbody/tr[1]/td/div/button", timeout:=1000, Raise:=False).Click
Sel.Wait 400
Sel.SwitchToAlert.Accept
Sel.Wait 600
'비밀번호
Sel.FindElementById("mem_pwd").SendKeys ""
Sel.Wait 500
Sel.FindElementById("mem_pwd").SendKeys Cells(inj, 9)
Sel.Wait 600
'비밀번호확인
Sel.FindElementById("re_mem_pwd").SendKeys ""
Sel.Wait 500
Sel.FindElementById("re_mem_pwd").SendKeys Cells(inj, 9)
Sel.Wait 600
'이름
Sel.FindElementById("mem_nm").SendKeys Cells(inj, 2)
Sel.Wait 600
'이메일
Sel.FindElementById("mem_email_1").SendKeys ""
Sel.Wait 600
Sel.FindElementById("mem_email_1").SendKeys Cells(inj, 8)
Sel.Wait 600
Sel.FindElementById("mem_email_2").AsSelect.SelectByText ("gmail.com")
Sel.Wait 600
'직업선택
Sel.FindElementById("job_cd").AsSelect.SelectByText ("무직")
Sel.Wait 500
'고령체크 //*[@id="chk_vgs_cd_V04"]
Sel.FindElementByXPath("//*[@id='chk_vgs_cd_V04']", timeout:=1000, Raise:=False).Click
Sel.Wait 600
Sel.ExecuteScript ("javascript:$('.usrInfoWrap').hide();")
'---------------------------------------------------------
'일반회원 //*[@id="frm_signup"]/div[2]/button[1]
Sel.FindElementByXPath("//*[@id='frm_signup']/div[2]/button[1]", timeout:=1000, Raise:=False).Click
'휴대폰인증
Sel.FindElementByXPath("//*[@id='frm_signup']/div[3]/div[1]/div/button", timeout:=1000, Raise:=False).Click
Sel.Wait 500
통신사 = Cells(inj, 6)
Sel.SwitchToNextWindow
'Debug.Print Sel.Window.Title + " " + 통신사
Sel.Wait 800
Select Case 통신사
Case "sk"
'Sel.FindElementByXPath("//*[@id='ct']/fieldset/ul[1]/li[1]/label", timeout:=1000, Raise:=False).Click
Sel.FindElementByXPath("//*[@id='ct']/fieldset/ul[1]/li[1]", timeout:=1000, Raise:=False).Click
Case "kt"
'Sel.FindElementByXPath("//*[@id='ct']/fieldset/ul[1]/li[2]/label", timeout:=1000, Raise:=False).Click
Sel.FindElementByXPath("//*[@id='ct']/fieldset/ul[1]/li[2]", timeout:=1000, Raise:=False).Click
Case "lg"
'Sel.FindElementByXPath("//*[@id='ct']/fieldset/ul[1]/li[3]/label", timeout:=1000, Raise:=False).Click
Sel.FindElementByXPath("//*[@id='ct']/fieldset/ul[1]/li[3]", timeout:=1000, Raise:=False).Click
Case "skal"
Call 알뜰폰("SKT")
Case "ktal"
Call 알뜰폰("KT")
Case "lgal"
Call 알뜰폰("LGU+")
Case Else
Sel.Close
Sel.SwitchToPreviousWindow
Sel.Close
MsgBox "통신사를 입력한 후 다시 시도 해보세요"
End
End Select
Sel.Wait 500
'전체동의
Sel.FindElementByXPath("//*[@id='ct']/fieldset/ul[2]/li/span/label[2]", timeout:=1000, Raise:=False).Click
Sel.Wait 400
'문자(SMS)인증
Sel.FindElementByXPath("//*[@id='btnSms']", timeout:=1000, Raise:=False).Click
Sel.Wait 900
Sel.FindElementById("username").SendKeys Cells(inj, 2)
Sel.Wait 600
'생년월일
생년월일 = LTrim(Str(Cells(inj, 3)))
Sel.FindElementById("mynum1").SendKeys ""
Sel.Wait 500
For k = 0 To Len(생년월일)
Sel.FindElementById("mynum1").SendKeys Mid(생년월일, k + 1, 1)
Sel.Wait 50
Next k
Sel.Wait 400
'남녀
Sel.FindElementById("mynum2").SendKeys ""
Sel.Wait 500
'주민뒷 첫자리
Sel.FindElementById("mynum2").SendKeys Cells(inj, 4)
Sel.Wait 400
Sel.FindElementById("mobileno").SendKeys ""
Sel.Wait 500
'휴대폰번호 세팅
Sel.FindElementById("mobileno").SendKeys Cells(inj, 7)
Sel.Wait 500
Sel.ExecuteScript ("javascript:window.scrollBy(0,1000)")
'보안문자입력
Sel.FindElementById("answer").SendKeys ""
'보안문자 수동입력하고
k = 0
Do
DoEvents
Sel.Wait 1000
If k > 60 Then
Sel.Close
MsgBox "CAPTCHA 문자입력 시간초과" + vbCrLf + "잠시후 다시 시도 해보세요"
End
End If
k = k + 1
auth = Sel.FindElementById("answer").Value
'Debug.Print auth
Loop Until Len(auth) = 6
Sel.Wait 400
'확인버튼
Sel.FindElementByXPath("//*[@id='btnSubmit']", timeout:=1000, Raise:=False).Click
Sel.Wait 1000
k = 0
Do
DoEvents
Sel.Wait 1000
If k > 120 Then
Sel.Close
MsgBox "문자메시지 6자리 숫자 입력시간 초과" + vbCrLf + "잠시후 다시 시도 해보세요"
End
End If
k = k + 1
auth = Sel.FindElementById("authnumber").Value
'Debug.Print auth
Loop Until Len(auth) = 6
'확인
Sel.FindElementByXPath("//*[@id='btnSubmit']", timeout:=1500, Raise:=False).Click
Sel.Wait 700
Sel.SetClipBoard Cells(inj, 10)
'우편번호버튼
'Sel.ExecuteScript ("javascript:fc_popZipAddr()")
''Sel.FindElementByXPath("//*[@id='frm_signup']/div[6]/div[4]/table/tbody/tr[2]/td/div/div/button", timeout:=1000, Raise:=False).Click
''Sel.Wait 1000
'주소찾기창
''Sel.FindElementById("keyword").SendKeys Worksheets("회원가입").Range("I2")
'Sel.Wait 400
'회원가입버튼 //*[@id="frm_signup"]/div[6]/div[9]/button[1]
회원가입9:
Range("L1") = 1
End Sub
Sub 알뜰폰(hp As String)
'Sel.FindElementByXPath("//*[@id='ct']/fieldset/ul[1]/li[4]/label", timeout:=1000, Raise:=False).Click
Sel.FindElementByXPath("//*[@id='ct']/fieldset/ul[1]/li[4]", timeout:=1000, Raise:=False).Click
Sel.Wait 400
Sel.FindElementByXPath("//*[@id='" & hp & "']", timeout:=1000, Raise:=False).Click
Sel.Wait 300
'선택버튼
Sel.FindElementByXPath("//*[@id='mvnoLayerCheck']", timeout:=1000, Raise:=False).Click
End Sub