ããšã話
ããªããæ¯æ¥ãã¹ã§ä»äºãããäžå¹žãªããã°ã©ãã§ããããã®ã¹ã±ãžã¥ãŒã«ãäºæž¬ããããšã¯äžå¯èœã§ãããšæ³åããŠãã ããã ãã®ãããªç¶æ³ã§ã¯ãèªå® ã§æé£ããšããªããã5ååŸã«ãã¹ãåè»ããããšãç¥ãããSMSãé»è©±ã§åä¿¡ãããšéåžžã«äŸ¿å©ã§ãã

幞ããªããšã«ãé茞äŒç€ŸïŒæ確ãªã¹ã±ãžã¥ãŒã«ãç«ãŠãããšãæ°ã«ããŸããã§ããïŒã«ã¯ãGoogleãããã䜿çšããŠãªã¢ã«ã¿ã€ã ã§ãã¹ã®çŸåšäœçœ®ã確èªã§ããWebãµã€ããå«ãŸããŠããŸãã ãããŠãããæŽããæ¥ãããªãã®å¿èãå£ããŠãããªãã¯ãã®åæãããSMS-kuãéãã¹ã¯ãªãããæžãããã«åº§ããŸãã ããããããã¯ããã»ã©åçŽã§ã¯ãããŸããã å°å³äžã®åçæãšãã®äžã®å°ããªåã§å®éã®è»äž¡ã®é床ãšå°çæéãè©äŸ¡ããã«ã¯ãé·ãæéãããããåãå¿ èŠããããŸãã ããã®å°ç¹ãå°å³äžã®ãã®é·æ¹åœ¢ã«è©²åœãããšãã«SMSãåãåãããããšæžãããšã¯ã§ããŸããã ãããšããŸã ã§ããŸããïŒ
ãç¥ã®ç®ã
ããããã·ã¯ãªãã¡ãã·ã³ã®ãŠã€ãã§ã«æã®èšèªããã©ã®ããã«ç¿»èš³ããããã§ãã
Sikuli-ç»åïŒã¹ã¯ãªãŒã³ã·ã§ããïŒã«åºã¥ãGUIèŠçŽ ã䜿çšããäœæ¥ã®æ€çŽ¢ããã³èªååã®ããã®ãã¯ãããžãŒã ãã®ãããžã§ã¯ãã®èè ã¯ã ãããã©ãŒ ïŒããµãã¥ãŒã»ããå·¥ç§å€§åŠææïŒã ãã³ã°ãã£ã³ãã£ã³ ïŒããµãã¥ãŒã»ããå·¥ç§å€§åŠåæ¥çïŒããã ã€ãŒïŒã¡ãªãŒã©ã³ã倧åŠã®åŠçïŒã§ãã 圌ãã®ãããžã§ã¯ãã¯ãACMïŒAssociation for Computing MachineryïŒã®åŸæŽã®äžã§éå¬ãããäŒè°ãUser Interface Software and Technologyãã§æé«ã®åŠçäœåã§ããã
ããã§ã¯ãã·ã¯ãªãšã¯äœã§ããïŒ å®éãããã¯ãŠãŒã¶ãŒã€ã³ã¿ãŒãã§ã€ã¹ã§ã®äœæ¥ãèªååããã¹ã¯ãªãããïŒPythonã§ïŒäœæã§ããAPIã§ãã 倧ããªå©ç¹ã¯ã䜿çšããã¢ããªã±ãŒã·ã§ã³ã®ãœãŒã¹ã³ãŒãã«ã¢ã¯ã»ã¹ããå¿ èŠããªãããšã§ãã GUIã®ç¹å®ã®èŠçŽ ãæ€çŽ¢ããããã«ãSikuliã¯ãããã®ã¹ã¯ãªãŒã³ã·ã§ããã®ã¿ã䜿çšããããŠã¹ã¯ãªãã¯ãããŒããŒãå ¥åãªã©ã®ãŠãŒã¶ãŒã¢ã¯ã·ã§ã³ããšãã¥ã¬ãŒãããã¢ããªã±ãŒã·ã§ã³ãå¶åŸ¡ããŸãã ãã®çµæãSikuliãã€ã³ã¹ããŒã«ãããŠãããªãã¬ãŒãã£ã³ã°ã·ã¹ãã äžã®ãã¹ãŠã®ã¢ããªã±ãŒã·ã§ã³ãå®å šã«èªååã§ããŸãã
ãã¹ãŠãèšèã§èª¬æããã®ã¯ç°¡åã§ã¯ãªããããã€ã³ã¿ãŒãããæ¥ç¶ãåå¥ã«èšå®ããã¹ã¯ãªããã®æçã瀺ããŸãã

ããã«ãããã¯å³ããã¬ãŒã³ããŒã·ã§ã³ã®äžéšã§ã¯ãããŸããã ããã¯ã¹ã¯ãªããã³ãŒããã®ãã®ã§ãã ããªãã«ã€ããŠã¯ç¥ããŸãããã ãã¿ã³ã®ç»åãæž¡ãããšãã§ããŸããã§ãã=ïŒ
IDE
ãã®ãããªã¹ã¯ãªããã¯ãéåžžã®ããã¹ããšãã£ã¿ãŒã§ã¯æžãããŠããªãããšã¯æããã§ãã ãããã£ãŠãéçºè ã¯éåžžã«ç°¡æœãªïŒãã ãæ¹åãå¿ èŠãªïŒããã°ã©ãã³ã°ç°å¢-Sikuli IDEãäœæããŸããã
ã¡ã€ã³ãŠã£ã³ããŠã¯æ¬¡ã®ããã«ãªããŸãã

ããŒã«ããŒã¯ãããã°ã©ããŒã«éžæå¯èœãª5ã€ã®ã¢ã¯ã·ã§ã³ãæäŸããŸãã
-ç»é¢é åãéžæãããšãã¹ã¯ãªããã§å¥è·¡çã«æååã«ãªããŸãïŒããèšãã°ïŒã
-åŸã§ã¹ã¯ãªããã§äœ¿çšããããã«ç»åãã¢ããããŒãããŸãã
-ã€ã³ã¿ãŒãã§ã€ã¹èŠçŽ ã®æ€çŽ¢é åãçããããã«ã幟äœåŠçãªé åïŒç»é¢ã®é·æ¹åœ¢ã®é åïŒãå®çŸ©ããŸãã
-ã¹ã¯ãªããã®å®è¡ã
-äžçš®ã®ãããã°ã ã¹ã¯ãªãããå®è¡ãããã®ãã¹ãŠã®ã¢ã¯ã·ã§ã³ã衚瀺ããŸãã
ãœãŒã¹ïŒã¹ã¯ãªãŒã³ã·ã§ããã®æãããã¹ãPythonã¹ã¯ãªãããHTMLã®ã¹ã¯ãªããã®ããžã¥ã¢ã«ããŒãžã§ã³ïŒã®åœ¢åŒã§åµé æ§ãä¿åããããå®è¡å¯èœãªsklã¹ã¯ãªããã«ãšã¯ã¹ããŒãã§ããŸãã ãã®çš®ã®ã¹ã¯ãªããã¯ãããŠã¹ãããã«ã¯ãªãã¯ããŠå®è¡ã§ããŸãïŒMacã®ã¿ïŒïŒããŸãã¯æ¬¡ã®ããã«ãªããŸãã
- MacïŒ/Applications/Sikuli-IDE.app xxx.sklãéããŸã
- WindowsïŒPATH-TO-SIKULI / sikuli-ide.bat xxx.skl
- LinuxïŒPATH-TO-SIKULI / sikuli-ide.sh xxx.skl
Mac OS X ã Linuxãããã³Windowsã« Sikuli IDEãã€ã³ã¹ããŒã«ã§ã ãŸã ã Jythonã¯ã€ã³ã¿ãŒããªã¿ãŒãšããŠæ©èœãããããJava 5以éãåäœããå¿ èŠããããŸãã
Sikuli API
éçºè ãæäŸããAPIã«é¢ããããã€ãã®èšèã KeyãšVDictã® 2ã€ã®ã¯ã©ã¹ã®ã¿ãå«ãŸããŸãã 1ã€ç®ã¯ãEnterãTabãHomeãªã©ã®ç¹å¥ãªïŒéã·ã³ããªãã¯ïŒããŒã®å®æ°ã®ã»ããã§ãã 2çªç®ã¯ãç»åãããŒãšããŠäœ¿çšããpythonèŸæžã®é¡äŒŒç©ã§ãã ããã«ãæ°åã®é¢æ°ãéçºè ã«èªç±ã«äœ¿çšã§ãããã®ã»ãšãã©ã¯ãã©ã¡ãŒã¿ãŒãšããŠã€ã¡ãŒãžãã©ã¡ãŒã¿ãŒïŒã€ã³ã¿ãŒãã§ã€ã¹èŠçŽ ã®ã¹ã¯ãªãŒã³ã·ã§ããïŒãåãåããŸãã ãããã®ããã€ãã次ã«ç€ºããŸãã
- clickïŒimgãmodifiers = 0ïŒ -imgïŒãã¡ã€ã«åãŸãã¯çŽæ¥ã¹ã¯ãªãŒã³ã·ã§ããïŒã«æãè¿ãç»é¢ã®é åãã¯ãªãã¯ããŸãã æ€çŽ¢ã¯ãfindïŒimgïŒé¢æ°ã䜿çšããŠå®è¡ãããŸãã modifiers-ããŒããŒã修食åãã¹ã¯
- closeAppïŒappïŒ-appãšããã¢ããªã±ãŒã·ã§ã³ãéããŸã
- ãããŒïŒimgïŒ-imgã«æãé¡äŒŒããç»é¢é åãèŠã€ããŠãããŒããŸã
- popupïŒmsgïŒ -ã¡ãã»ãŒãžmsgãå«ããã€ã¢ãã°ããã¯ã¹ã衚瀺ããŸã
- switchAppïŒã¢ããªïŒ - ã¢ããªã«ãã©ãŒã«ã¹ãäžããŸãã å®è¡äžã®ã¢ããªã±ãŒã·ã§ã³ã®äžã«ã¢ããªåãèŠã€ãããªãå ŽåãopenAppïŒappïŒãèªåçã«åŒã³åºãããŸãã ïŒWindowsã§ã¯ãæ€çŽ¢ã¯ã¢ããªã±ãŒã·ã§ã³ã®ååã§ã¯ãªããã¿ã€ãã«ããŒã®ãã¹ãã«ãã£ãŠè¡ãããŸãïŒ
- typeïŒ* argsïŒ -å ¥åã®ãã¹ãïŒããã§ã¯ãEnterããŒãæŒããªã©ãKeyã¯ã©ã¹ã圹ç«ã€å ŽåããããŸãïŒ
- untilNotExistïŒimgãã¿ã€ã ã¢ãŠã= 3000ïŒ-imgã€ã¡ãŒãžãç»é¢ããæ¶ãããŸã§åŸ æ©ããŸãã ã¿ã€ã ã¢ãŠã-ããªç§åäœã®åŸ æ©æé
ãããã£ãŠãã¹ã¯ãªããã¯éåžžã®ã³ã³ãã¥ãŒã¿ãŒãŠãŒã¶ãŒãå®è¡ã§ããããšããã¹ãŠå®è¡ã§ããŸãã
GUIã®åäœãã¹ã
Sikuliã®ãã1ã€ã®å¯èœæ§ïŒãããŠãããããã£ãšæ·±å»ãªãã®ïŒã¯ãã€ã³ã¿ãŒãã§ã€ã¹ããã¹ãããããã®ã¹ã¯ãªãããæžãããšã§ãã
ç¹°ãè¿ãã«ãªããŸãããSikuli IDEã®éçºè ã¯ãã¿ã¹ã¯ãå®äºããããã«å¿ èŠãªã³ãŒããµã€ãºãåæžããããšããŸããã ãã¹ãã³ãŒãã¯junit.framework.TestCaseãã掟çããpythonã¯ã©ã¹ã«èªåçã«ã©ãããããéçºè ã¯æšæºã¡ãœããsetUpïŒïŒãtearDownïŒïŒãããã³ã¡ãœããã®çŽæ¥ãã¹ãã®ã¿ãå®è£ ã§ããŸãã
ãã¹ãããã«ãžã®ã¢ã¯ã»ã¹ã¯ãã¡ãã¥ãŒé ç®ã®[衚瀺] / [åäœãã¹ã ]ã䜿çšããããCtrl + Uã®çµã¿åããã䜿çšããŠååŸã§ããŸãã ãã®äžã«ããã¹ããéå§ãããå®è¡ããã¿ã³ããããŸãã
å人çãªå°è±¡
ãã®ãããžã§ã¯ãã¯ééããªãèå³æ·±ããã®ã§ãã ãããŸã§ã®ãšãããããŒã¿çã®ã¿ããããããã©ãŒãã³ã¹ãšã³ã³ãããŒã«ã®æ€çŽ¢ã®å®è£ ã®äž¡æ¹ã®ç¹ã§ããã«å€ãã®æ¹åãå¿ èŠã§ãã
iTunesãèµ·åããããããã£ã¹ãã匷å¶çã«æŽæ°ããæ¥ç¶ãããiPodãåæããæœåºããŠiTunesãéããããã«äœæããã¹ã¯ãªããã¯ããŸã ã¿ã¹ã¯ãå®äºããŠããŸããã 代ããã«ã圌ã¯iTunesãèµ·åãããªãŒãã£ãªããã¯ïŒãããã圌ã¯äœããæ¢ããŠããã®ã§ããããïŒïŒã調ã¹ãiPodãããã«åãåºããŠããã°ã©ã ãéããŸãã=ïŒ
ã·ã³ãã«ã ãããŸã圹ã«ç«ããªãã¿ã¹ã¯ã§ãSikuliã®å©ããåããŠãç§ã¯ãŸã 解決ããããšãã§ããŸããã ã¹ã¯ãªããã¯ãFirefoxã®GoogleããŒã«ããŒãä»ããŠGoogleã°ãªãŒãã£ã³ã°ãåå¥ã«éä¿¡ã§ããŸããã ããã§ã¯ãããŸãããã ããã«æ€çŽ¢ããããã«ãå ¥åãã£ãŒã«ããæ¢ãããã«ç»é¢ã®ã©ã®éšåã§æ å ±ãæäŸããå¿ èŠããããŸããã ããã§ãªããã°ã圌ã¯ã¢ãã¬ã¹ããŒã«ãããã«ã¡ã¯ããšå ¥åããããšããç§ãå¿ããŠãWorld Wide Webã®èéã«é£ã³èŸŒã¿ãŸããã
ãã¹ã«æ»ããšãçŸæç¹ã§ã¯ãã®åé¡ãããã»ã©ç°¡åã«è§£æ±ºããããšã¯ããããäžå¯èœã ãšèšããŸãã ããããSikuliãããžã§ã¯ãã¯ããã°ã©ãã³ã°ãžã®æ°ããã¢ãããŒãã®å§ãŸãã§ããããã®ãããªã¢ã¯ã·ã§ã³ãèªååããåäŸã®ãªãæ©äŒãããã«éãã§ãããã ããããããã®ã¢ãããŒãã¯ããã»ã©æ·±å»ã«èŠããŸããããããã¯åœ¹ã«ç«ããªããšããæå³ã§ã¯ãããŸããã ããããããã«æ¬æ Œçãªããã°ã©ãã³ã°ã奜ãå Žåã¯ãæãæã«ããŠããŸãããã®çŽ æŽããããªãŒãã³ãœãŒã¹ãããžã§ã¯ãã«è²¢ç®ããŠãã ããã å®éããã®ãããªå€éšã®åçŽãã®èåŸã«ã¯ãSikuliã®éåžžã«è€éãªå®è£ ããããŸãã
ãã¢ãããª
以äžã¯ãSikuli IDEã§ã®äœæ¥ã瀺ãå ¬åŒãããªã§ãã
ãåç §ã
Python411ããããã£ã¹ãã·ãªãŒãºã¯ãæãéèŠãªãªã³ã¯ã§ã¯ãããŸããããSikuliãããžã§ã¯ããåããŠç¥ã£ããªã³ã¯ã§ãïŒææ°ãªãªãŒã¹ã§èª¬æãããŠããã®ã¯ããã«ã€ããŠã§ãïŒã ã¢ããã¥ã¢ããã°ã©ããŒã«ããèå³æ·±ãPythonããããã£ã¹ãã
Sikuli Project Official Site-ãããžã§ã¯ãã®å ¬åŒãµã€ã ã ãã¢ãèŠãŠãSikuli IDEã®ãœãŒã¹ã³ãŒããšOSã®ã€ã³ã¹ããŒã©ãŒãããŠã³ããŒããããã¡ããããã¥ã¡ã³ããèªãããšãã§ããŸãã
ç»åé§åã³ã³ãã¥ãŒãã£ã³ã°ã¯ãæè¡ãšãããžã§ã¯ãã®äž»ãªç®æšã«é¢ããå ¥éèšäºã§ãã ãããããããšã話ãããã¹ããããã¯ã®ä»ã®æçã«ã€ããŠåçšãããŸããã
Launchpadã®Sikuli-ããã°ã©ããŒåãã®ãããžã§ã¯ãã«é¢ãããã詳现ãªæ å ±ïŒãœãŒã¹ã³ãŒãããªãªãŒã¹ããã°ã¬ããŒããéçºè ã«é£çµ¡ããèœåã ãªã³ã¯ã®the_tosterã«æè¬ããŸãã
ããŠãçµè«ïŒ Twitterã®Sikuli ã ãããã«åŸã£ãŠãã ããã
PS
èšäºã«é¢ãã建èšçãªã³ã¡ã³ããšã¿ã€ããã¹ã«é¢ãããã°ã¬ããŒããåãåãããšãã§ããŠããããã§ãã è¬ç©ã®åœ¢ã§ã®ã¿æãŸããã