원래 이 질문을 게시했습니다.여기, 하지만 다시 생각해 보니 이곳이 더 나은 곳이라고 판단했습니다.
안타깝게도 카메라 드라이버를 번들로 제공하는 독점 프로그램을 사용해야 했습니다. 몇 개의 버튼을 클릭하는 것과 관련된 특정 작업을 수행하고 싶습니다. 그리고 CLI가 없습니다.
그렇다면 자동화하는 가장 쉬운 방법은 무엇입니까? xvfb를 사용하여 가짜 X 환경에서 프로그램을 열고 싶은데 입력 작업을 어떻게 수행하나요? (x, y)에서 클릭된 픽셀일 수도 있지만 버튼과 메뉴 항목을 참조할 수 있다면 더 좋을 것입니다.
더 쉬운 방법이 있다면 알려주세요! xvfb가 올바른 접근 방식인지 잘 모르겠습니다. 제가 하려는 일의 실제 이름조차 모르기 때문에 검색이 매우 어렵습니다...
답변1
당신은 그것을 사용할 수 있습니다xdotool
키보드/마우스 입력, 창 관리 등을 위조할 수 있습니다.
캡처된 결과 이미지를 보려면 example.sh
스크립트를 참조하세요 .xcalc "4*9="
#!/usr/bin/env bash
save="$DISPLAY" # save original X display number
export DISPLAY=:44 # set random choosen display for xvfb
case "$1" in # and x-programs called below
start) Xvfb $DISPLAY & ;; # starting xvfb server on :44
calc) xcalc & ;; # run x-calculator
xdo) xdotool mousemove 1 1 click 1 # focus with click on x:y=1:1
xdotool key 4 asterisk 9 # calc 4*9
xdotool key equal ;; # =
show) #capture root window ('36' result image) and display it to saved Xno
xwd -root | xwud -display $save & ;;
stop) ps auxww | grep "Xvfb $DISPLAY" | awk '{print $2}' | xargs kill ;;
all) DISPLAY=$save; $0 start; $0 calc; sleep 1; $0 xdo; $0 show; $0 stop ;;
esac
참고: 개별 옵션을 테스트에 사용할 수 있거나 모두 실행 옵션을 사용하십시오 ./example.sh all
.