SendKeys (ARROW_RIGHT) 오류

VBA
작성자
나야
작성일
2022-06-15 13:24
조회
44
엑셀버전 : 엑셀2010 이전

운영체제 : 윈도우10

Dim Egb As New Selenium.WebDriver

Egb.SendKeys (ARROW_RIGHT) 또는 SendKeys (ARROW_RIGHT) 입력창으로 정상적으로 이동됨
Egb.Wait (500)
Egb.SendKeys Range("d" & i) '입력안됨

위에코드는 엑셀에 있는 자료를 크롬브라우저로 못불러오고

아래코드는 정상적으로 작동합니다

무엇이 문제일까요?

Dim Egb As New Selenium.WebDriver
Application.SendKeys "{tab}"

Egb.Wait (500)
Egb.SendKeys Range("d" & i) '입력됨

전체 5

  • 2022-06-15 13:35

    @나야 님 탭키는 아이템에 포커싱이 되어있지 않을 경우, 디폴트로 설정된 아이템의 다음 항목으로 이동합니다.

    방향키는 아이템에 포커싱이 되어 있을 경우에만 이동합니다.

    아이템에 포커싱을 잡은 다음에 시도해보세요


    • 2022-06-15 17:18

      @엑셀은즐거워 님 감사합니다


  • 2022-06-15 15:17
    채택된 답변

    @나야 님 Egb.SendKeys Range("d" & i)가 입력될 곳(Element)을 먼저 지정해 보세요. 문맥상 추측하면 이전 단계에서 Tab키로 다른 항목으로 이동하시는 것 같은데요. Selenium으로 브라우저 컨트롤 하실 때는 굳이 그렇게 하지 마시고 브라우저 DOM (단축키 F12)에서 엘리먼트를 찾아서 바로 SendKeys를 사용하면 가장 간단합니다.

    예를 들어 Class 이름이 abc이고 그 아래 입력받는 태그가 span이라고 한다면,

    Egb.FindElementByCss(".abc span").SendKeys Range("d" & i)

    그냥 이렇게 한 번에 위치를 찾아서 입력까지 가능합니다. (예외적으로 바로 입력이 안 되는 구조도 있는데요. 그럼 해당 엘리먼트.Click이나 엘리먼트.ClickDouble을 먼저 실행해서 글자 입력이 가능한 편집형태로 바꿔줘야 하는 사이트도 있습니다. 그 뒤에 엘리먼트.SendKeys를 하면 입력이 됩니다.)

    Element를 찾는 데 어려움을 겪고 계셔서 Tab키로 이동하는 거라면, Element를 좀 더 쉽게 찾아가는 방법을 먼저 익히시면 오히려 다른 부분이 쉽게 풀릴 듯합니다.

    전에도 말씀드렸던 Css Selector를 적극 이용해 보시고요. 참조할 수 있는 Class나 속성이 거의 없는 경우 XPath를 이용해 Text 검색하는 것도 좋은 방법입니다. innerText가 포함(또는 일치)된 엘리먼트를 찾아줍니다.

    .FindElementByXPath("//span[text()='발주확인']").Click '//완전일치하는 텍스트로 찾아줌
    .FindElementByXPath("//*[@class='x-grid3-cell-inner' and text()='certain_text']")'//클래스와 텍스트 두 가지 조건으로 찾아줌
    .FindElementByXPath("//span[contains(.,'Control panel')]") '//텍스트 부분일치, 즉 포함하면 찾아줌

    이렇게 찾은 엘리먼트를 기준으로 ../.. 이런 식으로 Parent로 이동할 수 있고 //a 이렇게 하면 자식 엘리먼트 중에 a 태그로 이동하구요. 또 찾은 엘리먼트를 기준으로 /Preceding-Sibling::span (형제 엘리먼트 중 윗쪽으로 첫 번째 인접한 span 태그) 또는 /Following-Sibling::a[2] (형제 엘리먼트 중 아래쪽으로 두 번째 인접한 a 태그) 이런 식으로 찾기 어려운 엘리먼트를 구조를 통해서 찾아갈 수 있습니다. 앞에서 사용한 Tab키를 이용해 엘리먼트를 찾는 것보다 이쪽이 훨씬 좋을 것 같습니다. 포커싱 문제 때문에 Selenium을 제대로 사용하기가 어려울 수 있습니다.


    • 2022-06-15 16:46

      @나는나 님 감사합니다. Element 찾기가 힘들어서 센드키로 이동했어요 파이썬 셀레니움 자료는 많은데 엑셀적용 셀레니움은 자료가 많이 없어서 힘든데 이렇게 자세히 설명해줘서 고맙습니다.
      알려준 자료는 잘 이해는 못해도 하나씩 적용해 나갈게요


  • 2022-06-15 15:29

    @나야 님 혹시 몰라서 첨언합니다.

    Element는 제대로 찾았는데 에러가 나는 경우 해당 엘리먼트가 iframe 안에 있는지도 확인해봐야 합니다. DOM에서 해당 엘리먼트 위로 스크롤해서 iframe이 있다면 해당 iframe id를 복사하고

    Egb.SwitchToFrame "iframe ID"

    이렇게 프레임 이동을 먼저 하면 에러 없이 엘리먼트를 정확히 찾아서 작동합니다. 나중에 Egb.SwitchToParentFrame으로 메인 화면으로 돌아올 수 있구요. 프레임과 포커싱 이동이 매우 중요하고 까다롭습니다.


전체 6,905
번호 카테고리 제목 작성자 작성일 추천 조회
알림
📌 -- VBA 기초-활용 4주 완성, 특별 스터디 모집을 시작합니다! (모집 마감) -- 📌 (99)
오빠두엑셀 | 2022.06.23 | 추천 144 | 조회 17842
오빠두엑셀 2022.06.23 144 17842
공지사항 함수/공식
⭐ [더 나은 커뮤니티 문화를 위한 Q&A 글 작성 규칙] ⭐ (79)
오빠두엑셀 | 2021.10.28 | 추천 98 | 조회 5347
오빠두엑셀 2021.10.28 98 5347
39097 VBA
New Worksheet_Change 기능을 Module 에서 다루기 (1)
유지니_ | 2022.07.06 | 추천 0 | 조회 7
유지니_ 2022.07.06 0 7
39093 함수/공식
New 쉼표로 구분된 단어 끊는 방법좀 알려주세요! 부탁드립니다 첨부파일 (2) 답변완료
YJ | 2022.07.06 | 추천 0 | 조회 19
YJ 2022.07.06 0 19
39092 함수/공식
New 정렬 기능 대신 3가지 순서로 RANK 매기기 엑셀파일 (1)
블링블링 | 2022.07.06 | 추천 0 | 조회 10
블링블링 2022.07.06 0 10
39087 VBA
New 바코드와 수량이 일치하면 중복 매대를 추출하는 매크로 결과값 오류 엑셀파일
kkwak | 2022.07.06 | 추천 0 | 조회 16
kkwak 2022.07.06 0 16
39082 함수/공식
New RANK와 RANK.EQ 함수 문의 엑셀파일 (2) 답변완료
블링블링 | 2022.07.06 | 추천 0 | 조회 17
블링블링 2022.07.06 0 17
39075 파워쿼리/피벗
New 파워쿼리 새로고침시 개인정보수준이라는 팝업이 뜨면서 에러가 납니다. 첨부파일
만땅 | 2022.07.06 | 추천 0 | 조회 16
만땅 2022.07.06 0 16
39072 함수/공식
New 숙박일수 계산 추가질문드립니다. 엑셀파일 (1)
두키림 | 2022.07.06 | 추천 0 | 조회 25
두키림 2022.07.06 0 25
39071 함수/공식
New 상태표시줄 관련 첨부파일 (2) 답변완료
선크 | 2022.07.06 | 추천 0 | 조회 25
선크 2022.07.06 0 25
39070 함수/공식
New 함수? 사용해서 1시트의 내용을 2시트에 표시하는 방법좀 알려주세요 엑셀파일 (3)
지펴린 | 2022.07.06 | 추천 0 | 조회 25
지펴린 2022.07.06 0 25
39062 VBA
New 고급필터를 사용하여 추출한 데이터를 수정하면 원본 데이터 시트에서 수정되는 코드 해석 부탁드립니다 엑셀파일 (2)
호랑이파워 | 2022.07.06 | 추천 0 | 조회 36
호랑이파워 2022.07.06 0 36
39059 차트/그래프
New 슬라이서 다중 연동하여 원형차트 시 적용되지 않는 문제 엑셀파일
지둥이 | 2022.07.06 | 추천 1 | 조회 12
지둥이 2022.07.06 1 12
39052 VBA
New 파일 삭제 매크로가 한쪽 문구에서만 작동을 합니다. 첨부파일 (1)
빼갈 | 2022.07.06 | 추천 0 | 조회 20
빼갈 2022.07.06 0 20
39044 VBA
New 사용자정의함수를 다른PC에 적용 (2) 답변완료
siempre | 2022.07.06 | 추천 0 | 조회 31
siempre 2022.07.06 0 31
39034 VBA
New 자동화 프로그램 항목 추가 관련
유라 | 2022.07.06 | 추천 0 | 조회 39
유라 2022.07.06 0 39
39032 VBA
New VBA 고급자동필터 활용 조건 값이 비워 있을 때 결과 값도 안 나오게 하는 방범 문의 합니다. 첨부파일 (4) 답변완료
파란맥 | 2022.07.06 | 추천 0 | 조회 30
파란맥 2022.07.06 0 30
39019 함수/공식
New 엑셀 수식시 범위부분이 절대값이 안되요 첨부파일 (4)
skih**** | 2022.07.05 | 추천 0 | 조회 31
skih**** 2022.07.05 0 31
39016 함수/공식
New vlookup으로 가져온 알파벳을 특정숫자로 바꾸는 방법(쌩초보) (1)
방성희 | 2022.07.05 | 추천 -2 | 조회 32
방성희 2022.07.05 -2 32
39014 VBA
New 열 추가 문의 첨부파일 (2)
오대표 | 2022.07.05 | 추천 0 | 조회 32
오대표 2022.07.05 0 32
39009 함수/공식
New index,match 함수 중에서 동일한 값이 나올때 첨부파일 (2) 답변완료
최사무엘 | 2022.07.05 | 추천 0 | 조회 27
최사무엘 2022.07.05 0 27
39007 함수/공식
New VLOOKUP 조건에 맞는 것을 계속해서 나열하고 싶을 때 첨부파일 (1)
야자키겐스케 | 2022.07.05 | 추천 0 | 조회 39
야자키겐스케 2022.07.05 0 39
39003 함수/공식
New 셀에서 영어만 추출하기 엑셀파일첨부파일 (2) 답변완료
킹셀 | 2022.07.05 | 추천 0 | 조회 24
킹셀 2022.07.05 0 24
38996 VBA
New 현재 열넓이 확인후 20 더하는 방법 (1)
033cola | 2022.07.05 | 추천 0 | 조회 34
033cola 2022.07.05 0 34
38990 함수/공식
New 중복값중에 하나만 더하기 엑셀파일첨부파일 (4) 답변완료
DS | 2022.07.05 | 추천 0 | 조회 29
DS 2022.07.05 0 29
38987 함수/공식
New 행 열이 모두 숫자입니다. 첨부파일 (1)
DOUKCHEON 이재형 | 2022.07.05 | 추천 0 | 조회 27
DOUKCHEON 이재형 2022.07.05 0 27
38983 함수/공식
New 카드번호별로 시트를 만들 수 있는 방법을 알고 싶습니다! - 관련 엑셀첨부 엑셀파일첨부파일 (1)
showtime**** | 2022.07.05 | 추천 0 | 조회 45
showtime**** 2022.07.05 0 45
38982 파워쿼리/피벗
New 파워쿼리에서 영문과 숫자만 순서대로 추출 (6) 답변완료
아코니 | 2022.07.05 | 추천 0 | 조회 41
아코니 2022.07.05 0 41
38981 구글시트
New COUNTIF 함수와 SUBTOTAL 엑셀파일첨부파일
거꾸로문 | 2022.07.05 | 추천 0 | 조회 27
거꾸로문 2022.07.05 0 27
38979 문서서식
New 서로 다른 엑셀 파일 비교 첨부파일 (2)
notice | 2022.07.05 | 추천 0 | 조회 29
notice 2022.07.05 0 29
38976 함수/공식
New BOM 오류 확인 방법 문의 첨부파일 (4)
터브가이황 | 2022.07.05 | 추천 0 | 조회 30
터브가이황 2022.07.05 0 30
38973 VBA
New 점수가 6점이상만 시트2에 표기하는 VBA 또는 매크로 표기하는 방법 문의 합니다. 엑셀파일첨부파일 (4) 답변완료
파란맥 | 2022.07.05 | 추천 0 | 조회 40
파란맥 2022.07.05 0 40