작성
·
18
0
안녕하세요!
27강 고급 입력 컨트롤 내용에 관하여 질문 드리고자 합니다.
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
# 크롬 드라이버 생성
driver = webdriver.Chrome()
# 페이지 이동
driver.get("https://www.naver.com")
# 태그 찾기
search = driver.find_element(By.CSS_SELECTOR, "#query")
# 문자 입력
search.send_keys('스타트코딩')
#순차적 키 입력
search.send_keys(Keys.COMMAND, 'a')
MAC OS에서 위와 같은 형태의 코드(전체선택 코드)가 작동하지 않아서, 아래의 코드를 사용하였습니다.
from selenium.webdriver.common.action_chains import ActionChains
actions = ActionChains(driver)
actions.key_down(Keys.COMMAND).send_keys('a').key_up(Keys.COMMAND).perform()
다만, ActionChains 모듈을 사용하였을 때에도, command+a(전체선택), command+c(복사) 까지는 정상적으로 작동했는데, command+v(붙여넣기)의 경우에만 작동하지 않습니다.
혹시 이에 대한 해결 방법이 있을까요?
답변 1
0
안녕하세요, 인프런 AI 인턴입니다. daina님.
MAC OS에서 pyautogui
나 selenium
의 ActionChains
를 통해서 키 조합을 사용하는 것은 때로 제한이 있을 수 있습니다. 특히, 특정 브라우저나 환경에 따라 동작하지 않을 수 있는 문제가 발생하기도 합니다. 이러한 문제를 해결하기 위해 몇 가지 접근 방법을 시도해볼 수 있습니다.
1. Selenium 대안 라이브러리 사용
- 때때로 ActionChains
로 해결되지 않는 문제가 발생할 수 있습니다. 이 경우, pyautogui
라이브러리로 전환해 볼 수 있습니다. 하지만 MAC OS에서는 추가적인 보안 권한 설정이 필요할 수 있습니다.
2. Pyautogui를 사용할 때 필요한 권한 설정 방법
- MAC OS에서 키보드 또는 마우스를 제어하려면 특정 보안 및 개인정보 보호 권한이 필요합니다. 시스템 환경설정에서 터미널 또는 파이썬 인터프리터에 대해 권한을 부여했는지 확인하세요.
3. 브라우저 확장 사용
- 자동화 테스트가 충분하다면, JavaScript에서 클립보드를 제어할 수 있는 브라우저 확장자를 사용해 보실 수도 있습니다. 이 방법은 웹 기반 자동화의 범위를 확장시킬 수 있습니다.
4. 원본 URL에서 유사한 질문 확인
- 유사한 문제를 해결한 사용자가 작성한 답변이 코멘트에 있습니다. 관련 기존 답변 URL에 들어가셔서 참고해보세요.
위의 접근 방식들을 적용해 보신 후에도 문제가 지속된다면, 추가적인 에러 메시지나 디버그 정보와 함께 질문을 남겨주세요. 커뮤니티와 강사님께서 더욱 특정화된 해결책을 제시할 수 있습니다.
저는 질문자님의 이해를 돕고자 지식공유자님의 기존 답변을 참고하여 유사한 답변 링크를 추천해드리고 있습니다. 현재 베타 기능으로 답변이 만족스럽지 않을 수 있는 점 양해 부탁드립니다. 🙏 추가적으로 궁금한 점이 있으시면, 이어서 질문해 주세요. 곧 지식공유자께서 답변해 주실 것입니다.
환경설정 - 보안 및 개인정보보호 - 손쉬운사용 > 터미널 및 vscode 추가
했더니 강의 중 알려주셨던 아래 코드 형태가 정상적으로 작동되네요.
search.send_keys(Keys.COMMAND, 'a')