Äú¿ÉÒÔ¾èÖú£¬Ö§³ÖÎÒÃǵĹ«ÒæÊÂÒµ¡£

1Ôª 10Ôª 50Ôª





ÈÏÖ¤Â룺  ÑéÖ¤Âë,¿´²»Çå³þ?Çëµã»÷Ë¢ÐÂÑéÖ¤Âë ±ØÌî



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Modeler   Code  
»áÔ±   
 
   
 
 
     
   
 ¶©ÔÄ
  ¾èÖú
Sikuli:´´ÐµÄͼÐλ¯±à³Ì¼¼Êõ
 
×÷Õߣº¿ñʦ À´×ÔÓÚ£º²©¿ÍÔ° ·¢²¼ÓÚ 2016-3-2
  3312  次浏览      27
 

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 ½Å±¾¾ßÓÐÁ¼ºÃµÄ´úÂë¿É¶ÁÐÔ£¬ÕâÒ»µã´ÓÉÏÊöʵÀý³¡¾°ÖÐÄܹ»ÓÐËùÌå»á¡ª¡ªÔÚÕâÖÖ¼ò¶ÌµÄ½Å±¾ÖУ¬ÒÑ»ù±¾½Ó½ü×ÔÈ»ÓïÑԵıíÊö·½Ê½¡£ÕâÑùµÄÒ»ÖÖÕ¹ÏÖÐÎʽºÍÌØÐÔʹµÃÊÖ¹¤²âÊÔÓÃÀýÓë×Ô¶¯»¯²âÊԽű¾µÄ¾àÀë´ó´óËõС£¬Ê¹µÃÕâÁ½ÕßÖ®¼äµÄ×Ô¶¯×ª»¯ºÍÕûºÏ³ÉΪ¿ÉÄÜ¡£

   
3312 ´Îä¯ÀÀ       27
 
Ïà¹ØÎÄÕÂ

ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖÓë̽ÌÖ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
 
Ïà¹ØÎĵµ

Android_UI¹Ù·½Éè¼Æ½Ì³Ì
ÊÖ»ú¿ª·¢Æ½Ì¨½éÉÜ
androidÅÄÕÕ¼°ÉÏ´«¹¦ÄÜ
Android½²ÒåÖÇÄÜÊÖ»ú¿ª·¢
Ïà¹Ø¿Î³Ì

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
Androidϵͳ¿ª·¢
AndroidÓ¦Óÿª·¢
ÊÖ»úÈí¼þ²âÊÔ
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]

androidÈË»ú½çÃæÖ¸ÄÏ
AndroidÊÖ»ú¿ª·¢£¨Ò»£©
AndroidÊÖ»ú¿ª·¢£¨¶þ£©
AndroidÊÖ»ú¿ª·¢£¨Èý£©
AndroidÊÖ»ú¿ª·¢£¨ËÄ£©
iPhoneÏûÏ¢ÍÆËÍ»úÖÆÊµÏÖ̽ÌÖ
ÊÖ»úÈí¼þ²âÊÔÓÃÀýÉè¼ÆÊµ¼ù
ÊÖ»ú¿Í»§¶ËUI²âÊÔ·ÖÎö
ÊÖ»úÈí¼þ×Ô¶¯»¯²âÊÔÑо¿±¨¸æ

Android¸ß¼¶Òƶ¯Ó¦ÓóÌÐò
AndroidÓ¦Óÿª·¢
Androidϵͳ¿ª·¢
ÊÖ»úÈí¼þ²âÊÔ
ǶÈëʽÈí¼þ²âÊÔ
AndroidÈí¡¢Ó²¡¢ÔÆÕûºÏ

ÁìÏÈIT¹«Ë¾ android¿ª·¢Æ½Ì¨×î¼Ñʵ¼ù
±±¾© Android¿ª·¢¼¼Êõ½ø½×
ijÐÂÄÜÔ´ÁìÓòÆóÒµ Android¿ª·¢¼¼Êõ
ijº½Ì칫˾ Android¡¢IOSÓ¦ÓÃÈí¼þ¿ª·¢
°¢¶û¿¨ÌØ LinuxÄÚºËÇý¶¯
°¬Ä¬Éú ǶÈëʽÈí¼þ¼Ü¹¹Éè¼Æ
Î÷ÃÅ×Ó Ç¶Èëʽ¼Ü¹¹Éè¼Æ