비주얼베이직을 이용하여 브라우저에 값을 자동입력하려는데 에러가 납니다.(ActiveX)
글쓴이: 지수아비 / 작성시간: 목, 2008/03/13 - 8:59오전
비주얼베이직으로 액티브엑스를 구현하려고합니다.
사이트별로 아이디와 패스워드를 자동으로 입력되게 하려고하는데요
form 태그를 만나면 각 앨리먼트를 검색해서 ID와 Password가 입력되도록 하였습니다.
그런데 form태그 안쪽에 fieldset 태그가 있으면 런타임에러가 납니다.
액티브엑스소스는 아래와 같습니다.
WebBrowser1.Navigate (<a href="http://www.xxx.xxx" rel="nofollow">http://www.xxx.xxx</a>) For x = 0 To WebBrowser1.Document.Forms.length - 1 '폼개수만큼 반복 For y = 0 To WebBrowser1.Document.Forms(x).length - 1 '폼의 엘리먼트 수만큼 반복 If WebBrowser1.Document.Forms(x).Item(y).Type = "text" Or WebBrowser1.Document.Forms(x).Item(y).Type = "password" Then itemName = LCase(WebBrowser1.Document.Forms(x).Item(y).Name) If itemName = "id" then WebBrowser1.Document.Forms(x).Item(y).Value = varLoginID End If If itemName = "pw" then WebBrowser1.Document.Forms(x).Item(y).Value = varLoginPW End If End If Next Next
대부분의 사이트에서는 정상적으로 값이 입력되는데 아래처럼 fieldset 태그가 폼태그 안쪽에 있는 사이트의
경우 런타임에러가 발생합니다.
fieldset이라는게 비주얼베이직에서 특별한 의미로 사용되기 때문인가요?
<form name='form' method='post'> <fieldset> <input type='text' name='id'> <input type='password' name='pw'> <input type='submit' value='OK'> </fieldset> </form>
위 내용이 아래처럼 fieldset이 form태그 밖으로 나가있을경우에는 정상적으로 잘 됩니다.
<fieldset> <form name='form' method='post'> <input type='text' name='id'> <input type='password' name='pw'> <input type='submit' value='OK'> </form> </fieldset>
도와주세요.....ㅜㅜ
Forums:
on error resume next
여전히 사용하나요?
There is no spoon. Neo from the Matrix 1999.
There is no spoon. Neo from the Matrix 1999.
무슨말인가요?
??
vb6에서는
프로시저 앞에 넣어 두면 그 프로시져 내부에서 비주얼베이식이 처리할 수 있는 오류는 무시합니다.
on error goto LABEL
하면 에러가 나면 Label로 점프하고,
err 객체로 에러를 별도로 핸들할 수 있지요.
위의 예같은 경우는 저런 류의 에러는 무시해도 될 것 같으므로,
on error resume next를 써도 될 듯 하네요.
만약에 제가 저런 프로그램을 만들라고 하라면,
inet 컨트롤를 써서, 해당 패이지를 tmp디렉토리 같은데 저장해 놓고,
별도로 만든 파서로 form 태그들만 뽑아 낼 것 같습니다.
vb, instr 함수도 꽤나 강력하거든요.
There is no spoon. Neo from the Matrix 1999.
There is no spoon. Neo from the Matrix 1999.
감사합니다.
덕분에 해결되었습니다.
그 한줄이 엄청난 결과를 가져오는군요.
감사합니다.
fieldset은 form의
fieldset은 form의 엘리먼트에는 속하지만 type값은 없습니다.
If WebBrowser1.Document.Forms(x).Item(y).Type = "text"
이 부분에서 에러가 나는게 아닐까 추측합니다.
댓글 달기