2017-12-09 153 views
0

python (지난 몇 개월 이내)을 처음 접해 보니 즐겁습니다. 이해하고 사용하기 쉽습니다. 이 경우를 제외하고!locateCenterOnScreen 좌표를 X Y 매개 변수로 전달하여 파이썬이있는 영역을 스크린 샷 할 수 있습니까?

셀레늄이있는 사이트에 로그인하고 특정 페이지로 이동하고 날짜 값을 입력하고 필요한 결과를 보여주는 스크립트를 작성했습니다. 그것은 위치로 스크롤 한 다음, 해당 페이지의 일부만 스크린 샷해야합니다. 처음에는 전체 화면을 저장하고 나중에 잘라낼 것입니다.하지만 필요한 영역 만 스크린 샷을 찍을 수 있다고 생각합니다.

코너를 시작하고 지역을 선택하는 여러 가지 방법을 시도해보고 궁극적으로 원하는 위치의 샘플 스크린 샷의 locateCenterOnScreen을 사용하여 pyautogui로 이동하기로 결정했습니다. 센터에서 왼쪽 위 모서리를 표시합니다. 내가 구하고 싶은 부분 전체를 이렇게하면 매번 같은 장소에 창이없는 경우에도 정확한 위치가 저장됩니다.

location = pyautogui.locateCenterOnScreen('ctr_cornerScreenshot.PNG')

를 사용 따라서

는 올바른 (X는, Y) 값을 적절하게 스크린에 대한 좌표를 찾아 반환한다. 그럼,

screengrabPic = pyautogui.screenshot(region=(location, 720, 340)) screengrabPic.save("transactions.png")

를 사용하고 오류가 나는 때문에 location로 전달 지역 매개 변수의 확신

AssertionError: region argument must be a tuple of four ints

로 판명, 나는 (int(location)을 시도하거나 한 'locationX, locationY,

나는 내 바퀴를 너무 많이 돌리기보다는 도움을 요청했다. 감사!

답변

0

좋아요, 그래서 더 많은 시행 착오를 거쳐 최종 해결책을 찾았습니다. pyautogui.readthedocs에

location = pyautogui.locateCenterOnScreen('ctr_cornerScreenshot.PNG') 
print(location) 
locationX, locationY = pyautogui.locateCenterOnScreen('ctr_cornerScreenshot.PNG') 
screengrabPic = pyautogui.screenshot(region=(locationX, locationY, 720, 340)) 
screengrabPic.save("tolls_" + filename + ".png") 

는이 구문을 설명하고, 아직 요구 사항은 locationX 및 locationY을 위해 다시 한 번 첫 번째 위치를 센터를 실행하는 것을 특정하지 않았다.