SikuliÊÇÒ»ÖÖʹÓýØÍ¼½øÐÐUI×Ô¶¯»¯²âÊԵļ¼Êõ¡£Sikuli°üÀ¨sikul½Å±¾£¬»ùÓÚJythonµÄAPIÒÔ¼°sikuli
IDE¡£Sikuli¿ÉÒÔʵÏÖÈκÎÄã¿ÉÒÔÔÚÏÔʾÆ÷ÉÏ¿´µ½ui¶ÔÏóµÄ×Ô¶¯»¯£¬Äã¿ÉÒÔͨ¹ý±àдһЩ´úÂëÀ´ÊµÏÖweb
Ò³Ãæ£¬window/linux/Mac OS X×ÀÃæÓ¦Óá¢ÉõÖÁÊÇiphoneºÍandroidÄ£ÄâÆ÷µÄ×Ô¶¯»¯²âÊÔ¡£
°²×°jruby/sikuli¼°ÆäËûÈí¼þ£º
ÔÚÕâÀïÎÒÃÇÏȽéÉÜÒ»ÏÂÈçºÎʹÓÃsikuli + jruby + watir-web_driverÀ´ÊµÏÖ»ùÓÚwebµÄ×Ô¶¯»¯²âÊÔ£¬Òò´ËÔÚ¿ªÊ¼Ö®Ç°£¬ÎÒÃÇÐèÒª°²×°Ò»Ð©»ù±¾¹¤¾ß¡£
°²×°sikuli£º
ÔÚÕâÀïÏÂÔØ°²×°sikuli£ºhttp://sikuli.org/download.shtml
×¢Ò⣺
1£¬sikuliÊÇ¿çÆ½Ì¨µÄ£¬ËùÒÔÇëÑ¡Ôñ¶ÔÓ¦µÄƽ̨°æ±¾½øÐÐÏÂÔØ£»
2£¬sikuliÐèÒª×îеÄJRE×÷Ϊ֧³Ö£¬ËùÒÔ°²×°Ç°Ç뽫jreÉý¼¶µ½×îУ»
3£¬Sikuli°²×°Íê³Éºó£¬ÔËÐÐsikuli IDE£¬¼ì²éÊÇ·ñÕý³£°²×°¡£
°²×°jruby£º
ÏÂÔØµØÖ·£ºhttp://www.jruby.org/download
×¢Ò⣺
1£¬Èç¹ûÊÇwindowsϵͳ£¬ÇëÑ¡ÔñJRuby 1.6.1 Windows Executable (md5,
sha1)½øÐа²×°£»
2£¬°²×°Íê³Éºó£¬½øÈëÃüÁîÐУ¬¼üÈëjruby -v²é¿´jruby°æ±¾£¬È·¶¨jrubyÊÇ·ñ°²×°³É¹¦£»
3£¬½«sikuli°²×°Ä¿Â¼ÏµÄsikuli-script.jarÎļþ¿½±´ÖÁjruby°²×°Ä¿Â¼\libĿ¼Ï£»
°²×°watir-webdriver°²×°Íêjrubyºó£¬½øÈëÃüÁîÐУ¬¼üÈëjgem install watir-webdriver£¬½øÐа²×°¡£
°²×°jrubyÊÇÒòΪÔÚsikuliÔËÐеÄʱºò»áÓõ½Java¶ÔÏó£¬Òò´ËÐèÒªÔÚjruby»·¾³ÖÐʹÓᣵ±È»£¬Ò²¿ÉÒÔʹÓÃjythonÀ´µ÷ÓÃsikuli£¬sikuli
IDEĬÈϵĽű¾ÓïÑÔÊÇjython¡£
°²×°watir-webdriverÊÇÒòΪÎÒÃÇÐèÒªÒ»Ì×web Ò³ÃæµÄ×Ô¶¯»¯²âÊÔ¿ò¼ÜÀ´ÅäºÏsikuliʹÓã¬ÈÃsikuliµÄ×÷Ó÷¢»ÓÖÁ×î´ó¡£
ʵսÑÝϰ¡ª¡ªÊ¹ÓÃwatir + sikuli½øÐÐweb qqµÇ½²âÊÔ
ÏÂÃæµÄ´úÂëÑÝʾÁËÈçºÎʹÓÃsikuli½øÐÐweb qqµÄµÇ½²âÊÔ¡£ÓÉÓÚweb
qqǰ¶Ë¼¼ÊõÉñºõÆä¼¼£¬µ¼ÖÂһЩ»ùÓÚdomµÄ²âÊÔ¹¤¾ß¡ª¡ªÈçwatirÎÞ·¨¶ÔÆä½øÐвâÊÔ¡£±ÈÈçwatirÎÞ·¨Ê¶±ðweb
qqÖÐʹÓõÄһЩhtml5±êÇ©¡£ÕâʱºòÎÒÃǾÍÐèÒª½èÖúÓÚsikuli½øÐжÔÏóµÄʶ±ðºÍ²Ù×÷¡£

ÏÂÃæÊǽű¾ÖÐËùʹÓõÄÈ«²¿½ØÍ¼¡£

ÉÏÃæµÄ½Å±¾¾ÍÊDzÉÓÃͼÐαȶԵķ½·¨£¬ÔÚÆÁÄ»ÉÏÕÒµ½½ØÍ¼Öп´ÆðÀ´Ò»ÑùµÄͼÐΣ¬È»ºó¶ÔÕâÆ¬ÇøÓò½øÐвÙ×÷¡£ ʵսÑÝϰ¡ª¡ªÊ¹ÓÃsikuli
IDE½øÐÐÆ¯Á÷Æ¿²Ù×÷QQÓÊÏäµÄƯÁ÷Æ¿Êǵ±Ï·dz£ÊÜ»¶ÓµÄÒ»¸ö¹¦ÄÜ£¬ÓÉÓÚQQÓÊÏäµÄ¶àframeǰ̨¼Ü¹¹£¬µ¼ÖÂwaitrµÈ´«Í³web¹¤¾ßÔÚ½øÐÐqqÓÊÏä²âÊÔʱ·Ç³£µÄÂé·³¡£ÕâÀïÎÒÃÇÑÝʾһÏÂÈçºÎʹÓÃsikuli
IDE½øÐÐÆ¯Á÷Æ¿µÄͶµÝ²Ù×÷¡£ ´ò¿ªsikuli IDE£¬ÓÉÓÚ¸ÃÓ¦ÓÃÊÇjavaдµÄ£¬ËùÒÔÔËÐÐÆðÀ´·Ç³£»ºÂý£¬Çë´ó¼ÒÉԵȡ£
½øÈëQQÓÊÏ䣬´ò¿ªÆ¯Á÷ƿӦÓ㬴ËʱUIÓ¦¸ÃÈçÏ£º

ÏÂÃæÊDzÙ×÷ƯÁ÷Æ¿µÄsikuli IDE´úÂ룺

¿ÉÒÔ¿´µ½ÔÉúsikuli´úÂ뻹ÊǺÜÇåÎúÒ×¶®µÄ¡£×¢Ò⣺ÔÚsikuli scriptÖУ¬·½·¨µÄĬÈϵ÷ÓöÔÏóÊǵ±Ç°µÄScreen¡£Ò²¾ÍÊÇ˵clickµÄĬÈϵ÷ÓÃÕß¾ÍÊǵ±Ç°µÄscreen¡£
Sikuli ÊÇÓÉ MIT µÄÑо¿ÍŶӷ¢²¼µÄÐÂÐÍͼÐλ¯±à³Ì¼¼Êõ¡£ËüÒÔͼÏñ¼ìË÷¼¼ÊõΪ»ù´¡£¬ÌṩÁËÒ»Ì×»ùÓÚ
Jython µÄ½Å±¾ÓïÑÔÒÔ¼°¼¯³É¿ª·¢»·¾³¡£Ê¹ÓÃÕß¿ÉÀûÓÃÆÁÄ»½ØÍ¼Ö±½ÓÒýÓà GUI ÔªËØ½øÐбà³Ì£¬Íê³É½»»¥²Ù×÷¡£Sikuli
Ò»´ÊÈ¡×ÔÄ«Î÷¸ç Huichol Indian ÍÁÖøÓÒâΪ¡°ÉϵÛÖ®ÑÛ¡±£¬ÕýÈçÆä¿ª·¢ÕßÕÅçýÏèËù˵¡ª¡ª Sikuli
ÈõçÄÔÄÜÏñÈËÒ»Ñù¡°¿´¡±Õâ¸ö¡°ÕæÊµÊÀ½ç¡±¡£
Sikuli µÄ°²×°Óë IDE ʹÓÃ
Ŀǰ Sikuli µÄ×îа汾Ϊ Sikuli X-1.0rc2¡£ÔÚÆä ¹Ù·½ÍøÕ¾ÏÂÔØÇø¿É»ñµÃΪ Mac
OS X¡¢Windows ºÍ Linux ²Ù×÷ϵͳËùÌṩµÄ°²×°Îļþ¼°°²×°·½·¨¼ò½é¡£
Ðè×¢ÒâµÄÊÇ£¬ÔÚ Windows ƽ̨Ï£¬ÒªÇóÓÐ Java 6 µÄÔËÐл·¾³Ö§³Ö£¬ÈôÒªÕý³£Ê¹Óà 1.0rc2
°æ±¾ÖÐÐÂÔöµÄÀ©Õ¹×é¼þ Sikuli Guide£¬»¹Ðè¸üРJava ÖÁµ±Ç°×îа汾¡£ÔÚ Linux ƽ̨ÉÏ£¬³ýÁËÒª°²×°
Java6 µÄÔËÐл·¾³Ö®Í⣬»¹Ðè°²×° wmctl ºÍ opencv2.0 µÄ libcv4, libcvaux4,
libhighgui4 °ü¡£
Sikuli ÌṩÁËÒ»¸ö¼òÒ׵Ľű¾¿ª·¢»·¾³¡£È±Ê¡½çÃæÓɲ˵¥À¸¡¢¹¤¾ßÀ¸¡¢²à±ßÀ¸¡¢±à¼Çø¡¢¿ØÖÆÌ¨ºÍ״̬À¸Áù²¿·Ö×é³É£¬Èçͼ
1 Ëùʾ¡£

ͼ 1. Sikuli-IDE ½çÃæ×é³É
¹¤¾ßÀ¸ÖÐÌṩÁËÁ½×é¹²¼Æ 5 ¸ö³£Óù¤¾ß°´Å¥¼°Îı¾ËÑË÷¿ò£º

ÆÁÄ»½ØÍ¼(Take screenshot)£ºµã»÷¸Ã°´Å¥£¬½øÈëÆÁÄ»½ØÍ¼×´Ì¬£¬ÍÏ×§¸¨ÖúÏßѡȡÐèÒª½ØÈ¡µÄ½çÃæÔªËØ£¬ÊÍ·ÅÊó±ê×ó¼üµÄͬʱ£¬×Ô¶¯½«¸Ã½ØÍ¼²åÈëµ½±à¼ÇøÖйâ±êµ±Ç°Î»Öá£Ê¹Óÿì½Ý¼ü
Ctrl+Shift+2(Command+Shift+2)Ò²¿É¼¤»î½ØÍ¼×´Ì¬£¬ÒÔÍê³É¶ÔÓÚµ¯³ö²Ëµ¥¡¢ÏÂÀ¿òÒ»ÀàµÄ¿Ø¼þµÄʵʱ½ØÍ¼¡£¸Ã¿ì½Ý¼üÒà¿Éͨ¹ýÖ÷²Ëµ¥
File->Preferences ½øÐÐ×Ô¶¨Òå¡£

²åÈëͼƬ(Insert image)£º³ýÖ±½Ó½ØÍ¼Í⣬Óû§Ò²¿Éͨ¹ýµã»÷¸Ã°´Å¥µ¼ÈëÒÑÓÐµÄ PNG ¸ñʽͼƬÎļþ¡£

½¨Á¢ÆÁÄ»ÇøÓò(Create region)£ºµã»÷¸Ã°´Å¥£¬½øÈëÆÁÄ»ÇøÓòÑ¡Ôñ״̬£¬ÍÏ×§¶¨Î»Ê®×ÖÏßѡȡÆÁÄ»ÇøÓò¡£ÊÍ·ÅÊó±ê×ó¼ü£¬¼´¿É½«µ±Ç°Ñ¡ÖÐÇøÓòµÄÆÁÄ»×ø±êÐÅÏ¢²åÈëµ½±à¼ÇøÖС£

ÔËÐÐ(Run)£ºµã»÷Ö´Ðе±Ç°½Å±¾¡£¿ì½Ý¼üΪ Ctrl+R(Command+R)¡£

ÂýËÙÔËÐÐ(Run in slow motion)£ºµã»÷ºóÒÔ½ÏÂýµÄËÙ¶ÈÖ´Ðе±Ç°½Å±¾£¬ÒÔºìɫԲÐÎÍâ¿òÏÔʽ±êʶÿһ´ÎͼÏñ²éÕÒ¶¨Î»¶¯×÷£¬±ãÓÚ³ÌÐòµ÷ÊÔÖнøÐн¹µã×·×Ù¡£¿ì½Ý¼üΪ
Ctrl+Alt+R(Command+Alt+R)¡£
×ó²à²à±ßÀ¸ÖзÖÀàÁгöÁ˲¿·Ö³£Óú¯Êý£¬µã»÷º¯ÊýÃû¿É¿ìËÙ½«Æä²åÈëµ½±à¼Çø£¬Èô¸Ãº¯ÊýÐè½ØÍ¼×÷Ϊ²ÎÊý£¬Ôò×Ô¶¯×ªÈëÆÁÄ»½ØÍ¼×´Ì¬¡£Ï·½µÄ״̬À¸¿ÉÓÃÓڲ鿴µ±Ç°Ðкţ¬ÓëÐÐÊ×
Tab Ëõ½øµÄ²ã¼¶ ( ÁкŠ)¡£
Sikuli ½Å±¾
Sikuli µÄ½Å±¾±àд×ñÑ Python Óï·¨¹æ·¶£¬Æä±¾ÉíÌṩÁ˶àÖÖ×Ô¶¨ÒåÀ༰Æä×Ô¶¨Òå·½·¨£¬ÆäÏêϸ½éÉܿɲμûÆä
¹Ù·½ÍøÕ¾Îĵµ¡£ÓÉÓÚ Sikuli »ùÓÚ Jython£¬ÆäºËÐÄ´úÂëÓÉ Java ±àд£¬¿ÉÔÚÓû§×Ô¶¨ÒåµÄ Java
¹¤³ÌÖн«Æä×÷Ϊ Java ±ê×¼Àà¿â½øÐÐÒýÓã¬Æä¹Ù·½ÍøÕ¾ÒàÌṩÁË JavaDoc¹©²Î¿¼¡£
ÕâÀïÏÈͨ¹ýÒ»¸ö×Ô¶¯´ò¿ª Firefox ä¯ÀÀÆ÷£¬²¢µÇ¼ Gmail µÄ¼òµ¥ÊµÀýÀ´¿ìËÙÒ»ÀÀ
Sikuli ½Å±¾µÄ¶ÀÌØÖ®´¦¡£

ͼ 2. ×Ô¶¯µÇ¼ Gmail
ÉÏͼËùʾµÄ Sikuli ½Å±¾Ê×Ïȵ¥»÷Õ¹¿ª¿ªÊ¼²Ëµ¥£¬½Ó×ŵ¥»÷ Firefox ͼ±êÆô¶¯ä¯ÀÀÆ÷¡£´ý
Firefox µÄ¹¤¾ßÀ¸³öÏÖºó£¬ÒÔ¹¤¾ßÀ¸Î»ÖÃΪ»ù×¼£¬ÏòÓÒÆ«ÒÆ 300 µÄ¾àÀëÒÔ¶¨Î»µ½µØÖ·À¸²¢Êó±êµ¥»÷½«¹â±êÖÃÈëµØÖ·À¸£¬È»ºóÔÚµØÖ·À¸ÖÐÊäÈë
gmail ÍøÖ·¡£´ýµÇ¼½çÃæ³öÏÖ£¬µ¥»÷Óû§ÃûÊäÈë¿ò²¢ÊäÈëÓû§ÃûÐÅÏ¢£¬È»ºó¼üÈë Tab ¼ü£¬Ê¹ÃÜÂëÊäÈë¿ò»ñµÃ½¹µã²¢ÊäÈëÃÜÂëÐÅÏ¢£¬×îºóµ¥»÷
Sign in °´Å¥Íê³ÉµÇ¼¡£
´Ó¸ÃʾÀý½Å±¾Öв»ÄÑ·¢ÏÖ Sikuli ×îÏÔÖøµÄÌØÉ«¡ª¡ª½« GUI ¶ÔÏóµÄÆÁÄ»½ØÍ¼×÷Ϊº¯ÊýµÄ²ÎÊýÖ±½ÓÒýÓã¬Õû¸ö´úÂëµÄÓïÒåÇåÎúÃ÷ÁË£¬¿É¶ÁÐÔ¼«Ç¿¡£½Å±¾Ö´Ðйý³ÌÖУ¬ÀûÓÃͼÏñ¼ìË÷Ëã·¨·ÖÎöÆ¥Å䵱ǰÆÁÄ»ÖжÔÓ¦µÄ¿Ø¼þ£¬²¢¶ÔÆäÓ¦ÓÃÏàÓ¦µÄÊó±ê»ò¼üÅ̲Ù×÷¡£ÕâÖÖ·½Ê½Ê¹µÃÎÒÃÇÔڽű¾±àдʱ£¬¼ÈÎÞÐè¹ØÐÄ·±ËöµÄÓ¦ÓóÌÐòÏà¹Ø
API Ò಻ÓûñÈ¡ Web ÄÚÈݶÔÏó¡£
±à¼Íê³ÉµÄ Sikuli ½Å±¾¿Éͨ¹ý File -> Save ½øÐб£´æ¡£ÔÚ Windows
ƽ̨ÉϽ«±£´æÎªÒ»¸öºó׺Ϊ .sikuli µÄÎļþ¼Ð£¬ÆäÖаüÀ¨½Å±¾ÖÐËùʹÓõ½µÄËùÓÐ PNG ͼƬ¡¢.py
ºó׺µÄÔ´´úÂëÒÔ¼°Ò»·ÝÏÔʾԴÂëµÄ HTML Îļþ¡£
±àдµ÷ÊÔÍê³ÉµÄ Sikuli ½Å±¾×îÖÕ¿Éͨ¹ý²Ëµ¥ File->Export
executable Éú³ÉÒÔ .skl Ϊºó׺µÄ¿ÉÖ´ÐÐÎļþ¡£Éú³ÉÕâÖÖ¸ñʽµÄ¿ÉÖ´ÐÐÎļþºó£¬Ê¹ÓÃÃüÁîÐй¤¾ß»òÖ±½ÓË«»÷¸ÃÎļþ¼´¿É±ã½ÝµØÔËÐиýű¾ÁË¡£
Sikuli µÄÓ¦ÓÃʵÀý
Sikuli µÄ³öÏÖ£¬¸ø GUI ×Ô¶¯»¯²âÊÔÌṩÁËеÄ˼·¡£Í¨³£Çé¿öÏÂÕë¶Ô
GUI µÄ×Ô¶¯»¯²âÊÔ¶àͨ¹ýÆä API ʶ±ð²¢»ñÈ¡ GUI ¶ÔÏ󣬽ø¶ø¶ÔÆä½øÐвÙ×÷;¶ÔÓÚ GUI ÏÔʾµÄУÑéÔòͨ¹ýÖ¸¶¨ÆäÔÚÆÁÄ»Éϵľø¶ÔλÖÃ×ø±ê²¢Æ¥Åä¶ÔӦλÖÃÉϵÄʵ¼ÊÏñËØÀ´Íê³É¡£Ç°Õß¾«×¼µ«¸´ÔÓ¶ÈÏà¶Ô½Ï¸ß£¬Æä¾ÖÏÞÔÚÓÚÐèÒªÁ˽â
GUI ÄÚ²¿µÄ´úÂëʵÏÖ£¬ÒÀÀµÓÚ API µÄ¿ª·ÅÐÔ£¬ËùÒªÑéÖ¤µÄ¶ÔÏóδ±ØÄܹ»±»³É¹¦»ñÈ¡;ºóÕßÔò¶Ô GUI ÔªËØ±¾ÉíµÄ¾ø¶ÔλÖÃÓÐ×ÅÑϸñµÄÒªÇó£¬È±·¦Áé»î¶ÈºÍ¶Ô
GUI Î»ÒÆµÄ°üÈÝÄÜÁ¦£¬Ò»¸öϸ΢µÄ¶ÔÏóλÖñ仯¼´¿ÉÄÜÑÏÖØÓ°ÏìУÑéµÄ½á¹û£¬µ«ÔÚʵ¼ÊÓ¦Óó¡¾°Ï£¬GUI ¶ÔÏó´óС¡¢Î»Öñ仯ºÍ
UI µÄÖØÅŵÄÇé¿ö½ÏΪ³£¼û£¬Ê¹µÃÕâÖÖÑéÖ¤·½Ê½µÄÎȶ¨ÐԺͿɿ¿ÐÔËæÖ®½µµÍ¡£¶ø Sikuli µÄ¹¤×÷·½Ê½ÍêÈ«ÆõºÏÁËÕâÁ½Àೡ¾°ÏµÄÐèÇ󣬿ɴó·ùµØ¼ò»¯²Ù×÷ºÍÑéÖ¤¹ý³Ì¡£½ÓÏÂÀ´Í¨¹ý¼¸¸öʵÀýÀ´Õ¹Ê¾ÈçºÎÔÚһЩµäÐÍÓÃÀýÖÐʹÓÃ
Sikuli ¿ìËÙÍê³É GUI ×Ô¶¯»¯¡£
ʵÀýÒ» Excel ÖÐÑéÖ¤Êó±êÐüͣʱµÄµ¥Ôª¸ñ×¢ÊÍÏÔʾ
ÔÚͨ³£µÄ GUI ×Ô¶¯»¯²âÊÔÖУ¬ÒªÍê³ÉÕâÒ»ÑéÖ¤£¬ÐèÒª±àд´úÂëÒÔ¶¨Î»¿Ø¼þ¡¢Ä£ÄâÊó±êʼþ¡¢²¶»ñ¶ÔÏó¡¢ÅжÏÏÔʾ½á¹û£¬ÊµÏÖÆðÀ´²¢²»ÇáËÉ¡£¶øÊ¹ÓÃ
Sikuli£¬½öʹÓÃÏÂÁеļò¶Ì½Å±¾¼´¿ÉÍê³ÉÕâÒ»ÈÎÎñ¡£

ͼ 3. ÏÔʾ²¢ÑéÖ¤µ¥Ôª¸ñ×¢ÊÍ
ͼ 3 ÖÐËùʾ½Å±¾Æ¬¶ÎÖУ¬´Ó 15-19 ÐÐÍê³ÉÁË´ò¿ª Excel ²¢´´½¨µ¥Ôª¸ñ×¢Ê͵Ĺý³Ì¡£µ¥Ôª¸ñ×¢Ê͵ÄÏÔʾ´¥·¢ºÍÏÔʾÑéÖ¤½öÕ¼ÓÃÁË
22-24 ÈýÐдúÂë¡£Ëùµ÷ÓÃµÄ hover() ·½·¨´Óµ±Ç°ÆÁÄ»ÏÔʾÉÏ×Ô¶¯Æ¥Åä½ØÍ¼²ÎÊýËùÊ¾ÇøÓò£¬»ñÈ¡ÆäλÖ㬽«Êó±êÖ¸ÕëÐüÍ£ÓڸþØÐÎÇøÓòµÄÖÐÐÄλÖ㬼¤»î×¢ÊÍÏÔʾ¡£¶øÔÚ
Sikuli¡°ÊÓ¾õ¡±ÄÜÁ¦µÄÖ§³ÖÏ£¬Ñé֤עÊÍÊÇ·ñÕýÈ·ÏÔʾֻÐèÓà verifyResult() ·½·¨¡°Ò»Æ³¡±¼´¿É¡£¸Ã·½·¨µÄʵÏÖÈçͼ
4 Ëùʾ£¬µ÷Óà exists() ·½·¨£¬¼´ÄÜÅжϵ±Ç°ÆÁÄ»ÖÐÊÇ·ñÏÔʾÓÐÏàӦעÊÍ¡£

ͼ 4. verifyResult() ·½·¨µÄʵÏÖ
ÀàËÆµÄÓ¦Óû¹Óпؼþ×¢ÊÍÐÅÏ¢µÄµ¯³ö¼°Ð£Ñé¡¢Web Ó¦ÓÃÖÐÐüͣЧ¹ûµÄУÑéµÈ¡£
ʵÀý¶þ Web Ò³ÃæÖеĶà¶ÔÏóÑ¡Ôñ
±¾ÀýÖУ¬ÊµÏÖÁË¶Ô Web Ò³ÃæÖжà¸ö¶ÔÏóµÄ¼ä¸ôѡȡºÍÅúÁ¿¿òÑ¡¡£Æä½Å±¾Æ¬¶ÎÈçͼ 5 Ëùʾ¡£

ͼ 5. Web Ò³ÃæÖеĶà¶ÔÏóѡȡ
¸Ã½Å±¾ÒÔÒ³ÃæÖÐ 12 ¸öÊý×Ö¶ÔÏóµÄ½ØÍ¼´´½¨´øÑ¡Ôñ¶ÔÏóÊý×飬ÔÚ result_list ÖÐÁгöÁËÆÚÍûµÄѡȡ½á¹ûÏÔʾ¡£ÔËÐÐʱʹÓÃ
openWeb() ·½·¨×Ô¶¯´ò¿ªä¯ÀÀÆ÷£¬½øÈëÖ¸¶¨Ò³Ãæ¡£µ÷Óà selectObjs() Óë selectRange()
·½·¨µÄʵÏÖ 3 ÖÖ²»Í¬µÄ¶àÑ¡·½Ê½¡£½Å±¾ÖÐ×Ô¶¨Òå·½·¨µÄʵÏÖ£¬Èçͼ 6 Ëùʾ¡£

ͼ 6. ×Ô¶¨Òå·½·¨µÄʵÏÖ
selectObjs() ·½·¨Öе÷Óà Sikuli µÄ click() ·½·¨£¬ÒÔ´«ÈëµÄ¶ÔÏó½ØÍ¼ÁбíºÍ
Sikuli ¶¨ÒåµÄ Key Modifier Ϊ²ÎÊý£¬ÊµÏÖÁ˰´Ï Ctrl ¼üºóÖð¸öµã»÷¶ÔÏóÍê³É¶àÑ¡µÄ¶¯×÷¡£
SelectRange() ·½·¨ÔòʵÏÖÁËÇøÓòÐÔѡȡ¡£ÒÔ obj_from
ºÍ obj_to ²ÎÊýÖ¸¶¨Ñ¡ÇøµÄÆðʼλÖúͽáÊøÎ»ÖÃ;»ò½öʹÓà obj_from Ö¸¶¨ÆðʼλÖã¬Í¬Ê±É趨ˮƽºÍ´¹Ö±·½ÏòµÄÆ«ÒÆÁ¿
x¡¢y À´Ö¸¶¨Ñ¡Çø¡£µ÷Óà dragDrop() ·½·¨£¬´«ÈëÆðʼ¡¢½áÊøÎ»Ö㬼´¿ÉÍê³ÉÇøÓòÑ¡Ôñ¡£
ÑéÖ¤·½Ê½Í¬ÊµÀýÒ»ËùÊö¡£
ʵÀýÈý Web Ò³ÃæÖеĶÔÏóÍÏ×§ÒÆÎ»
±¾ÀýÖ÷ÒªÓ¦Óà Sikuli µÄ dragDrop() ·½·¨£¬ÊµÏÖ¶ÔÏóµÄÍÏ×§ÒÆÎ»²Ù×÷¡£Í¼
7 ÖдúÂëËùÍê³ÉµÄÈÎÎñ¼´ÎªÍ¨¹ýÍÏ×§µÄ·½Ê½£¬½«Ö¸¶¨µÄÍ¼Æ¬ÒÆ¶¯µ½ Trash ÇøÓòÖС£

ͼ 7. ÍÏקͼƬÖÁ Trash ÇøÓò
¸Ã½Å±¾ÖУ¬ÔÚ droppable Êý×éÖж¨ÒåÐèÒª±»ÒÆÈë Trash µÄͼƬ£¬ÒÔ
Trash ÇøÓòµÄ±êÌâÀ¸ÎªËÑË÷Ä¿±ê£¬Óà find() ·½·¨»ñµÃ Trash ÇøÓòµÄ Match ÀàÐͶÔÏó£¬×÷ΪĿ±êÇøÓò²ÎÊý´«Èë
moveTo() ·½·¨¡£ÆäÖÐ moveTo() ·½·¨²éÕÒµ±Ç°ÆÁÄ»ÏÔʾÖÐËùÓÐÓë obj ²ÎÊýËù´«ÈëµÄͼÐÎÏàÆ¥ÅäµÄ¶ÔÏ󣬽«ÆäÍÏ×§ÖÁ
des ËùÖ¸¶¨µÄÇøÓò¡£ÆäʵÏÖÈçͼ 8 Ëùʾ¡£

ͼ 8. moveTo() ·½·¨µÄʵÏÖ
Ôڸ÷½·¨ÖУ¬¶ÔÓÚͼƬËõÂÔͼӦÓà exists() ·½·¨½øÐмìË÷ʱ£¬½øÐÐÁËͼÏñÏàËÆ¶È(È¡ÖµÇø¼äΪ
0~1)µÄµ÷Õû£¬Sikuli ÖÐȱʡÇé¿öϵÄÏàËÆ¶ÈÉèÖÃΪ 0.7£¬ÎªÁËÔÚͼƬÄÚÈÝÀàËÆµÄÇé¿öϽøÐÐÕýÈ·µÄÇø·Ö£¬¿ÉÓõ½
similar() ·½·¨Êʵ±Ìá¸ß¼ìË÷ʱµÄÏàËÆ¶È£¬ÒÔ±ÜÃâÆ¥Åäµ½ÆäËûÀàËÆÇøÓò¡£
ÈôÐèÈ·Èϵ±Ç°ÏàËÆ¶ÈÉèÖÃÏ£¬Í¼ÏñµÄÆ¥ÅäÇé¿ö£¬¿ÉÔڽű¾Öе¥»÷½ØÍ¼¶ÔÏ󣬼¤»î Pattern Settings
¶Ô»°¿ò¡£ÔÚ±¾ÀýÖУ¬Èçµ¥»÷µÚ 25 ÐÐ droppable ÖеĵڶþÕŽØÍ¼£¬Ôòµ¯³ö¶Ô»°¿òÈçͼ 9 Ëùʾ¡£Í¼ÖÐ(1)ÖÐËù±êÊ¶ÇøÓòÖУ¬ÓÐÁ½·ùͼƬ·Ö±ð±»ºìÉ«ºÍ×ϺìÉ«¸ßÁÁÏÔʾ¡£±íʾÔÚµ±Ç°µÄÏàËÆ¶ÈÏ£¬ÕâÁ½·ùͼƬ¾ù±»Ê¶±ðΪҪѰÕҵĶÔÏó¡£ÑÕɫԽƫºì£¬ÔòͼƬÓë½ØÍ¼µÄÏàËÆ¶ÈÔ½¸ß£¬Ô½½üËÆ×ÏÉ«ÔòÏàËÆ³Ì¶ÈÔ½µÍ¡£µ÷½Ú(2)Ëù±êʾµÄ
Similarity »¬¿é£¬¸Ä±äÏàËÆ¶ÈÉèÖã¬Ôò¿É¿´µ½Ô¤ÀÀÇøÓòÖÐµÄÆ¥ÅäÇøÓòµÄÊýÁ¿¼°ÑÕÉ«±ä»¯£¬´Ó¶øÒÔ´ËΪÒÀ¾ÝÑ¡ÔñÊʵ±µÄÏàËÆ¶ÈÉèÖã¬Ê¹µÃ³ÌÐò¿ÉÒÔ¾«×¼Î¨Ò»µØ¶¨Î»Ä¿±êÇøÓò¡£

ͼ 9. Pattern Settings
¶Ô»°¿ò
Sikuli µÄÓÅÊÆ¼°¾ÖÏÞ
Sikuli Ϊ½Å±¾¸³ÓèÁËÈËÀàµÄÊӽǣ¬ÈüÆËã»ú²»µ¥Äܹ»È¥²¶×½ºǫ́µÄ½Ó¿ÚÊý¾ÝºÍ·µ»ØÖµ£¬¶øÇÒÄÜÈçͬÈËÑÛÒ»°ã£¬¡°¿´¡±µ½Ò»¸öÕæÊµµÄ
GUI Õ¹ÏÖ¡£Ê¹ÓÃÕßÖ±½ÓÔڽű¾ÖÐÒýÓÃÄ¿±ê GUI ÔªËØµÄ½ØÍ¼À´»ñÈ¡¸Ã¶ÔÏ󣬲¢Ö¸¶¨¶ÔÆäËù½øÐеIJÙ×÷£¬¼òµ¥¸ßЧ¡£Ê¹µÃ
GUI ×Ô¶¯»¯°ÚÍÑÁ˶ÔÓ¦ÓõÄÄÚ²¿³ÌÐòʵÏÖµÄÒÀÀµ£¬ÎÞÐè»ñÈ¡ API£¬ÒàÎÞÐëÁ˽â GUI µÄÄÚ²¿´úÂëʵÏÖ;ºöÂÔÁ˱ê×¼¿Ø¼þºÍ·Ç±ê×¼¿Ø¼þÔÚ²Ù×÷ºÍ»ñÈ¡ÉϵIJîÒìÐÔ;ÆÕ±éÊÊÓÃÓÚËùÓÐÔËÐÐÔÚÓÐͼÐÎÓû§½çÃæµÄ²Ù×÷ϵͳ֮ÉϵÄÓ¦Óã¬ÓÐ
GUI ÏÔʾµÄµØ·½¼´¿É±»»ñÈ¡ºÍ²Ù×÷¡£ÊµÊ±µÄͼÐμìË÷¶¨Î»£¬±ÜÃâÁËÎ»ÒÆºÍ UI ÖØÅŵÈλÖñ仯Ôì³ÉµÄÎÞ·¨×¼È·¶¨Î»²¢»ñÈ¡¿Ø¼þµÄÎÊÌâ¡£Python
Óï·¨¼æÈÝ +Java Äںˣ¬ÎªÆä¸³ÓèÁ˺ÜÇ¿µÄÀ©Õ¹ÐÔ£¬Í¬Ê±£¬Open Source Ò²Èà Sikuli ±¾Éí»ñµÃÁ˸ü¶àµÄ·¢Õ¹»ú»áºÍ¿Õ¼ä¡£Ê¹ÓÃ
GUI ÔªËØ½ØÍ¼Ëù±àÖÆµÄ Sikuli ½Å±¾¾ßÓÐÁ¼ºÃµÄ´úÂë¿É¶ÁÐÔ£¬ÕâÒ»µã´ÓÉÏÊöʵÀý³¡¾°ÖÐÄܹ»ÓÐËùÌå»á¡ª¡ªÔÚÕâÖÖ¼ò¶ÌµÄ½Å±¾ÖУ¬ÒÑ»ù±¾½Ó½ü×ÔÈ»ÓïÑԵıíÊö·½Ê½¡£ÕâÑùµÄÒ»ÖÖÕ¹ÏÖÐÎʽºÍÌØÐÔʹµÃÊÖ¹¤²âÊÔÓÃÀýÓë×Ô¶¯»¯²âÊԽű¾µÄ¾àÀë´ó´óËõС£¬Ê¹µÃÕâÁ½ÕßÖ®¼äµÄ×Ô¶¯×ª»¯ºÍÕûºÏ³ÉΪ¿ÉÄÜ¡£
|