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

1Ôª 10Ôª 50Ôª





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



  ÇóÖª ÎÄÕ ÎÄ¿â Lib ÊÓÆµ iPerson ¿Î³Ì ÈÏÖ¤ ×Éѯ ¹¤¾ß ½²×ù Model Center   Code  
»áÔ±   
   
 
     
   
 ¶©ÔÄ
  ¾èÖú
Monkey Îȶ¨ÐÔ²âÊÔ
 
×÷Õߣºlucytan01
  3782  次浏览      27
 2020-4-21
 
±à¼­ÍƼö:
±¾ÎÄÖ÷Òª½éÉÜʲôÊÇÎȶ¨ÐÔ²âÊÔ£¬Monkey¼Ü¹¹ÓëÈõµã£¬MonkeyµÄѹÁ¦²âÊÔ²ÎÊý£¬Ï£Íû¶ÔÄúµÄѧϰÓÐËù°ïÖú¡£
±¾ÎÄÀ´×ÔÓÚCSDN £¬ÓÉ»ðÁú¹ûÈí¼þAlice±à¼­¡¢ÍƼö¡£

Ò»¡¢Ê²Ã´ÊÇÎȶ¨ÐÔ²âÊÔ?

ͨ¹ýËæ»úµã»÷ÆÁĻһ¶Îʱ¼ä£¬¿´¿´app»á²»»á±¼À££¬Äܲ»ÄÜά³ÖÕý³£ÔËÐÐ

¶þ. MoneyÊÇʲô?

Monkey²âÊÔÊÇAndroidƽ̨×Ô¶¯»¯²âÊÔµÄÒ»ÖÖÊֶΣ¬Í¨¹ýMonkey³ÌÐòÄ£ÄâÓû§´¥ÃþÆÁÄ»¡¢»¬¶¯Trackball¡¢°´¼üµÈ²Ù×÷À´¶ÔÉ豸ÉϵijÌÐò½øÐвâÊÔ£¬¼ì²â³ÌÐò¶à¾ÃµÄʱ¼ä»á·¢ÉúÒì³£¡£ºÍMonkeyRunner¼¸ºõÊÇÍêÈ«²»Í¬µÄ£¬MonkeyRunnerÏ൱ÓÚÊǸã×Ô¶¯»¯²âÊÔµÄÁË

¹Ù·½½éÉÜ:

https://developer.android.com/studio/test/monkey.html

Èý. MonkeyµÄ½éÉÜ

Monkey³ÌÐòÓÉAndroidϵͳ×Ô´ø£¬Ê¹ÓÃJavaÓïÑÔд³É£¬ÔÚAndroidÎļþϵͳÖеĴæ·Å·¾¶ÊÇ£º/system/framework/monkey.jar

Monkey.jar³ÌÐòÊÇÓÉÒ»¸öÃûΪ¡°monkey¡±µÄShell½Å±¾À´Æô¶¯Ö´ÐУ¬shell½Å±¾ÔÚAndroidÎļþϵͳÖеĴæ·Å·¾¶ÊÇ£º/system/bin/monkey

Monkey ÃüÁîÆô¶¯·½Ê½

a. ¿ÉÒÔͨ¹ýPC»úCMD´°¿ÚÖÐÖ´ÐÐ: adb shell monkey £û+ÃüÁî²ÎÊý£ýÀ´½øÐÐMonkey²âÊÔ

b. ÔÚPCÉÏadb shell ½øÈëAndroidϵͳ£¬Í¨¹ýÖ´ÐÐmonkey {+ÃüÁî²ÎÊý} À´½øÐÐMonkey ²âÊÔ

c. ÔÚAndroid»ú»òÕßÄ£ÄâÆ÷ÉÏÖ±½ÓÖ´ÐÐmonkey ÃüÁ¿ÉÒÔÔÚAndroid»úÉϰ²×°AndroidÖÕ¶ËÄ£ÄâÆ÷

ËÄ. Monkey¼Ü¹¹

Îå. MonkeyÈõµã

MonkeyËäÈ»¿ÉÒÔ¸ù¾ÝÒ»¸öÖ¸¶¨µÄÃüÁî½Å±¾·¢ËͰ´¼üÏûÏ¢£¬µ«²»Ö§³ÖÌõ¼þÅжϣ¬²»Ö§³Ö¶ÁÈ¡´ý²â½çÃæµÄÐÅÏ¢À´Ö´ÐÐÑéÖ¤²Ù×÷

Áù. MonkeyµÄѹÁ¦²âÊÔ²ÎÊý

ÄÇôÕâ¸öoptionͨ³£ÓÖ·ÖΪ4´óÀࣺ³£ÓÃÑ¡ÏʼþÑ¡Ïî£¬Ô¼ÊøÑ¡Ïµ÷ÊÔÑ¡Ïî

1.³£ÓÃÑ¡ÏîµÄ²ÎÊýͨ³£ÓУº

-v ÓÃÓÚ·´À¡ÐÅÏ¢¼¶±ð£¨Ò»¸ö-v±íʾһ¸ö²ã¼¶£¬Á½¸ö-v±íʾÁ½¸ö²ã¼¶£¬Í¨³£×î¶àÈý¸ö-v£©

ʾÀýLevel0£º

adb shell monkey -p com.swartz.cicada ¨Cv 100

˵Ã÷ ȱʡֵ£¬½öÌṩÆô¶¯Ìáʾ¡¢²âÊÔÍê³ÉºÍ×îÖÕ½á¹ûµÈÉÙÁ¿ÐÅÏ¢ ÏàÓ¦Ô´´úÂëÈçͼËùʾÁË£¬ÕâÊ®·ÖÓÐÀûÓÚµ÷ÊÔÁË

ʾÀýLevel1£º

adb shell monkey -p com.swartz.cicada -v-v 100

˵Ã÷

Ìṩ½ÏΪÏêϸµÄÈÕÖ¾£¬°üÀ¨Ã¿¸ö·¢Ë͵½ActivityµÄʼþÐÅÏ¢

ʾÀýLevel2£º

adb shell monkey -p com.swartz.cicada -v-v-v 100

˵Ã÷

×îÏêϸµÄÈÕÖ¾£¬°üÀ¨Á˲âÊÔÖÐÑ¡ÖÐ/δѡÖеÄActivityÐÅÏ¢

2.ʱ¼äÑ¡ÏîµÄ²ÎÊýͨ³£ÓУº

-s ±íÊ¾Î±Ëæ»úÊýÉú³ÉµÄseedÖµ£¬Èç¹ûseedÖµÏàͬ£¬ÔòÁ½´ÎmonkeyËù²úÉúµÄʼþÐòÁÐÒ²ÊÇÒ»ÑùµÄ

ʾÀý£º

Monkey²âÊÔ1£ºadb shell monkey -p com.swartz.cicada ¨Cs 10 100

Monkey ²âÊÔ2£ºadb shell monkey -p com.swartz.cicada ¨Cs 10 100

Á½´Î²âÊÔµÄЧ¹ûÊÇÏàͬµÄ£¬ÒòΪģÄâµÄÓû§²Ù×÷ÐòÁУ¨Ã¿´Î²Ù×÷°´ÕÕÒ»¶¨µÄÏȺó˳ÐòËù×é³ÉµÄһϵÁвÙ×÷£¬¼´Ò»¸öÐòÁУ©ÊÇÒ»ÑùµÄ¡£²Ù×÷ÐòÁÐËäÈ»ÊÇËæ»úÉú³ÉµÄ£¬µ«ÊÇÖ»ÒªÎÒÃÇÖ¸¶¨ÁËÏàͬµÄSeedÖµ£¬¾Í¿ÉÒÔ±£Ö¤Á½´Î²âÊÔ²úÉúµÄËæ»ú²Ù×÷ÐòÁÐÊÇÍêÈ«ÏàͬµÄ£¬ËùÒÔÕâ¸ö²Ù×÷ÐòÁÐÎ±Ëæ»úµÄ£»

--throttle:ÿ¸öʼþ½áÊøºóµÄ¼ä¸ôʱ¼ä

3.Ô¼ÊøÑ¡ÏîµÄ²ÎÊýͨ³£ÓУº

-p Ö¸¶¨ÎļþÃû

count Ö¸¶¨Òª·¢Ë͵ÄʼþÊý

-c Óô˲ÎÊýÖ¸¶¨Ò»¸ö»ò¼¸¸öÀà±ð£¬activity±ØÐëÖ¸¶¨Ò»¸öcategory£¬²ÅÄܱ»Æô¶¯£¬·ñÔò½«»áÆô¶¯²»ÁË

4.µ÷ÊÔÑ¡ÏîµÄ²ÎÊýͨ³£ÓУº

--dbg-no-events£º³õʼ»¯Æô¶¯µÄactivity£¬µ«ÊDz»²úÉúÈκÎʼþ¡£

--hprof£ºÖ¸¶¨¸ÃÏîºóÔÚʼþÐòÁз¢ËÍǰºó»áÁ¢¼´Éú³É·ÖÎö±¨¸æ

--ignore-crashes£ººöÂÔ±ÀÀ£

--ignore-timeouts£ººöÂÔ³¬Ê±

--ignore-security-exceptions£ººöÂÔ°²È«Òì³£

--kill-process-after-error£º·¢Éú´íÎóºóÖ±½Óɱµô½ø³Ì

--monitor-native-crashes£º¸ú×Ù±¾µØ·½·¨µÄ±ÀÀ£ÎÊÌâ

¹¤×÷ÖÐΪÁ˱£Ö¤²âÊÔÊýÁ¿µÄÍêÕû½øÐУ¬ÎÒÃÇÒ»°ã²»»áÔÚ·¢Éú´íÎóʱÁ¢¿ÌÍ˳öѹÁ¦²âÊÔ¡£monkey ²âÊÔÃüÁîÈçÏ£º

adb shell monkey -p com.swartz.cicada -s 500 --ignore-crashes --ignore-timeouts --monitor-native-crashes -v -v 10000 > E:\monkey_log\20170831.txt

kill´Ë²ÎÊýÓÃÀ´É±µô½ø³Ì£ºkill pid ÏÈÖ´ÐÐadb shell ÔÙps |grep monkey ²éѯ½á¹ûÈçÏÂͼÖÐ15248 ¼´ÎªPID ÔÙkill pid(15248)¼´¿É

Àý×Ó:

adb shell monkey -p com.tpnet.hlquery --throttle 100 --pct-touch 50 --pct-motion 50 -v -v -v 1000 >c:\monkeytest.txt

²âÊÔcom.tpnet.hlqueryÕâ¸öapp£¬¼ä¸ô100ºÁÃ룬50%µÄ´¥Ãþʼþ£¬50%

µÄ»¬¶¯Ê¼þ£¬Èý¸ö-vÊä³öÏêϸµÄÈÕÖ¾£¬Ö´ÐÐ1000¸öʼþ£¬ÈÕÖ¾Êä³öµ½c:\monkeytest.txt

ps: ÃüÁîÔËÐÐǰÊÖ»úÏȽâËø£¬win8 ÒÔÉÏÒªÓùÜÀíÔ±Éí·Ý´ò¿ªcmd

Æß. MonkeyµÄ½á¹ûÓÚ·ÖÎö

1. ³õ²½·ÖÎö·½·¨£º

Monkey: seed=20 count=100 --Ëæ»úÖÖ×ÓºÍÔËÐдÎÊý

:AllowPackage: com.swartz.cicada --Ö¸¶¨µÄ²âÊÔ°ü

:IncludeCategory: android.intent.category.LAUNCHER --Category°üº¬LAUNCHER

:IncludeCategory: android.intent.category.MONKEY --Category°üº¬MONKEY

// Selecting main activities from category android.intent.category.LAUNCHER

// + Using main activity com.swartz.cicada.LauncherActivity (from package com.swartz.cicada)

// Selecting main activities from category android.intent.category.MONKEY --²éѯ½á¹ûÁбí

// Seeded: 20 --Ëæ»úÖÖ×Ó

// Event percentages:

// 0: 15.0% --ʼþ0 Ϊtouchʼþ£¬¾ÍÊÇÏ൱ÓÚ°´ÏÂÖ®ºóµ¯ÆðÀ´µÄÒ»¸ö¶¯×÷

// 1: 10.0% --ʼþ1 Ϊmotion£¬Ï൱ÓÚ˵´ÓÆðʼµãµ½ÖÕµãÓÐÒÆ¶¯Á˶àÉÙ²½£¬¾ÍÊDz½ÖèÊýÁ¿

// 2: 2.0% --ʼþ2 Ϊpinchzoom£¬ÎªÁ½¸öÊÖÖ¸ÓÐͬʱ°´ÏÂÈ¥ºó£¬¶¼ÏòÖмäÒÆ¶¯ºóupÆðÀ´£¬Ï൱ÓÚÒ»¸öËõ·ÅµÄ¶¯×÷¡£

// 3: 15.0% --ʼþ3 Ϊtrackball£¬Îª¹ì¼£Çòʼþ

// 4: -0.0% --ʼþ4 Ϊrotation ΪÆÁÄ»Ðýת°Ù·Ö±ÈÒþ²ØÊ¼þ

// 5: 25.0% --ʼþ5 Ϊnavµ¼º½Ê¼þ£¬¾ÍÊÇÉÏÏÂ×óÓÒ

// 6: 15.0% --ʼþ6 ΪmajornavÖ÷µ¼º½Ê¼þ£¬»á²úÉúһЩ´°¿ÚµÄʼþ

// 7: 2.0% --ʼþ7 Ϊϵͳ°´¼ü

// 8: 2.0% --ʼþ8£¬appÓ¦ÓõĴò¿ª¾ÍÊÇÓõÄÕâ¸öʼþ

// 9: 1.0% --ʼþ9£¬¼üÅ̵Ŀª£¬¹Ø

// 10: 13.0% --ʼþ10£¬°´¼ü°´ÏÂÔÚµ¯ÆðµÈ¶¯×÷

ÈÕÖ¾½áβ£º

Èç¹ûMonkey²âÊÔ˳ÀûÖ´ÐÐÍê³É£¬ÔÚlogµÄ×îºó£¬»á´òÓ¡³öµ±Ç°Ö´ÐÐʼþµÄ´ÎÊýºÍËù»¨·ÑµÄʱ¼ä£»Monkey

finished´ú±íÖ´ÐÐÍê³É¡£

£¨Èç¹ûMonkeyÖ´ÐÐÖжϣ¬ÔÚlogµÄ×îºóÒ²Äܲ鿴µ½µ±Ç°ÒÑÖ´ÐеĴÎÊý¡££©

2.Ïêϸ·ÖÎö£º

Monkey²âÊÔ³öÏÖ´íÎóÖ®ºó£¬Ò»°ãµÄ·ÖÎö²½Öè·ÖΪÒÔϼ¸ÖÖ:

2.1¿´MonkeyÈÕÖ¾(×¢ÒâµÚÒ»¸öswitchÒÔ¼°Òì³£ÐÅÏ¢µÈ)

2.11³ÌÐòÎÞÏìÓ¦ÎÊÌ⣬ÔÚÈÕÖ¾ÖÐËÑË÷ ¡°ANR¡±

2.12±¼À£ÎÊÌâ: ÔÚÈÕÖ¾ÖÐËÑË÷ ¡°Exception¡±

ANRÎÊÌ⣺ÔÚÈÕÖ¾ÖÐËÑË÷¡°ANR¡±(ʲôÊÇANR£ºApplication Not Responding,¼´Ó¦ÓÃÎÞÏìÓ¦£¬¾ßÌåÓйØANRµÄ֪ʶÏê¼û£º)£ºhttps://www.tuicool.com/articles/IfQvY3

2.13ForceClosedºÍ³ÌÐòÒì³£Í˳öÎÊÌ⣺ÔÚÈÕÖ¾ÖÐËÑË÷¡°ÖÂÃü¡±

3.²é¿´MonkeyÀïÃæ´íÎóǰµÄһЩʼþ¶¯×÷£¬²¢ÊÖ¶¯Ö´Ðиö¯×÷¡£

Èç¹ûMonkey²âÊÔ˳ÀûÖ´ÐÐÍê³É£¬ÔÚlogµÄ×îºó£¬»á´òÓ¡³öµ±Ç°Ö´ÐÐʼþµÄ´ÎÊýºÍËù»¨·ÑµÄʱ¼ä; // Monkey finished´ú±íÖ´ÐÐÍê³É¡£

MonkeyÖ´ÐÐÖжϣ¬ÔÚlogµÄ×îºóÒ²Äܲ鿴µ½µ±Ç°µÄÒѾ­Ö´ÐеĴÎÊý¡£

°Ë. Monkey²âÊÔÖÐÄÚ´æÎÊÌâ·ÖÎö

1. ÔõôÑùȥȷ¶¨ÄÚ´æÐ¹Â©?

ÄÚ´æÐ¹Â©µ¯³öout of memory¶Ô»°¿ò

¶ÔÓÚÓÐÄÚ´æÐ¹Â©µ«ÊÇûÓе¥³öout of memory¶Ô»°¿òµÄÇé¿ö£¬¿ÉÒÔͨ¹ýlogcatÎļþGC³öÐÅÏ¢£¬(GC:javaµÄÀ¬»ø»ØÊÕ»úÖÆ)

GC_FOR_ALLOC: ÒòΪÔÚ·ÖÅäÄÚ´æÊ±ºòÄÚ´æ²»¹»ÒýÆðµÄ

GC_EXPLICIT ±íÃ÷GC±»ÏÔʽÇëÇó´¥·¢µÄ£¬ÈçSystem.gcµ÷Óã¬

GC_CONCCURRENT: ±íÃ÷GCÔÚÄÚ´æÊ¹ÓÃÂÊ´ïµ½Ò»¶¨µÄ¾¯½äֵʱºò£¬×Ô¶¯´¥·¢

GC_BEFORE_OOM ±íÃ÷ÔÚÐéÄâ»úÅ׳öÄÚ´æ²»¹»Òì³£oom֮ǰ£¬Ö´ÐÐ×îºóÒ»´Î»ØÊÕÄÚ´æÀ¬»ø

¾Å. ¨Chprof ²ÎÊý±¨¸æ

adb shell monkey -p com.tpnet.hlquery --hprof --throttle 100 --pct-touch 50 --pct-motion 50 -v -v -v 1000 >c:

Èç¹ûÖ¸¶¨ÁËÕâ¸öÑ¡Ïmonkey»áÔÚ·¢ËÍʼþµÄǰºóÉú³ÉappÄÚ´æ¿ìÕÕÎļþ£¬Ò»°ã»áÔÚÉ豸µÄ/dada/miscĿ¼ÏÂÉú³ÉhprofÎļþ(ps: /data/misc/ÐèÒªrootȨÏÞ)

ÍϽøAndroidStudio¼´¿É²é¿´

(ps: ÎÒ²âÊÔÁËûÓÐÉú³É¡£¡£²»ÖªµÀʲô»ØÊÂ)

Ê®. Monkey Script½Å±¾ÖÆ×÷

Monkey scriptÊǰ´ÕÕÒ»¶¨Óï·¨¹æÔò±àдÓÐÐòµÄÓû§Ê¼þÁ÷²¢ÇÒÊÊÓÃÓÚmonkeyÃüÁ¾ßµÄ½Å±¾£¬¿ÉÒÔÓÃtxtд¡£

½Å±¾±àдÍê±Ï·ÅÈëÊÖ»úµÄsdcardĿ¼Ï£¬cmdÖÐÔËÐÐÃüÁî

adb shell monkey -f/sdcard/½Å±¾Ãû×Ö ÔËÐдÎÊý

½áºÏmonkeyµÄ-vºÍ¨ChhprofÊä³öÈÕÖ¾ºÍÐÔÄܱ¨¸æ

adb shell monkey --hprof -f/sdcard/*.txt -v -v -v 3 > c:\monkey.txt

һЩ½Å±¾ÃüÁî:

start data>>

½«¿ØÖÆ monkey µÄһЩ²ÎÊýÉèÖú;ßÌåµÄ monkey ÃüÁî·Ö¸ô¿ªÀ´

LaunchAcitivity(pkg_name, cl_name)

Æô¶¯ÈÎÒâÓ¦ÓõÄÒ»¸ö»î¶¯£¨½çÃæ£©

pkg_name, ÒªÆô¶¯µÄÓ¦ÓðüÃû

cl_name, Òª´ò¿ªµÄ»î¶¯µÄÀàÃû

DispatchPointer(downTime,eventTime,action,x,y,pressure,
size,metaState,xPrecision,yPrecision,device,edgeFlags)

ÏòÒ»¸öÖ¸¶¨Î»Ö÷¢Ë͵¥¸öÊÖÊÆÏûÏ¢

downTime: ·¢ËÍÏûÏ¢µÄʱ¼ä£¬Ö»ÒªÊǺϷ¨µÄ³¤ÕûÐÍÊý×Ö¼´¿É

eventTime: Ö÷ÒªÊÇÓÃÔÚÖ¸¶¨·¢ËÍÁ½¸öʼþÖ®¼äµÄÍ£¶Ù

action: ÏûÏ¢Êǰ´Ï»¹ÊÇ̧Æð£¬0±íʾ°´Ï£¬1±íʾ̧Æð

x:x ×ø±ê

y:y ×ø±ê

ÆäÓà 7 ¸ö²ÎÊý¾ù¿ÉÒÔÉèÖÃΪ 0

Ä£°æ


count = 1 // ÏÂÃæÕâ¸ö count Ñ¡Ï monkey ²¢Ã»ÓÐÓõ½£¬¿ÉÒÔºöÂÔËü
speed = 1.0 //speed Ñ¡ÏîÊÇÓÃÀ´µ÷ÕûÁ½´Î°´¼üµÄ·¢ËͱôÂʵÄ
start data >> // ¡°start data >>¡± ÊÇ ÓÐ ´óСдÃô¸ÐµÄ£¬¶øÇÒµ¥´Ê¼äµÄ¼ä¸ôÖ»ÓÃÓÐÒ»¸ö¿Õ¸ñ£¡
LaunchActivity(com.zhengping.contact, com.zhengping.contact.Main) //# Activity Öµ¿ÉÒÔͨ¹ý aapt ÃüÁî²é¿´
DispatchPointer(5109520,5109520,0,261,128,0,0,0,0,0,0,0);
DispatchPointer(5109521,5109521,1,261,128,0,0,0,0,0,0,0);
UserWait(2000) // Í£¶Ùʱ¼ä

DispatchPress (KEYCODE_Z) // ÎÄ×ÖÊäÈë monkey ֻʶ±ðÓ¢ÎĺÍÊý×ÖÊäÈë

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

΢·þÎñ²âÊÔÖ®µ¥Ôª²âÊÔ
һƪͼÎÄ´øÄãÁ˽â°×ºÐ²âÊÔÓÃÀýÉè¼Æ·½·¨
È«ÃæµÄÖÊÁ¿±£ÕÏÌåϵ֮»Ø¹é²âÊÔ²ßÂÔ
È˹¤ÖÇÄÜ×Ô¶¯»¯²âÊÔ̽Ë÷
Ïà¹ØÎĵµ

×Ô¶¯»¯½Ó¿Ú²âÊÔʵ¼ù֮·
jenkins³ÖÐø¼¯³É²âÊÔ
ÐÔÄܲâÊÔÕï¶Ï·ÖÎöÓëÓÅ»¯
ÐÔÄܲâÊÔʵÀý
Ïà¹Ø¿Î³Ì

³ÖÐø¼¯³É²âÊÔ×î¼Ñʵ¼ù
×Ô¶¯»¯²âÊÔÌåϵ½¨ÉèÓë×î¼Ñʵ¼ù
²âÊԼܹ¹µÄ¹¹½¨ÓëÓ¦ÓÃʵ¼ù
DevOpsʱ´úµÄ²âÊÔ¼¼ÊõÓë×î¼Ñʵ¼ù
×îл¼Æ»®
DeepSeekÔÚÈí¼þ²âÊÔÓ¦ÓÃʵ¼ù 4-12[ÔÚÏß]
DeepSeek´óÄ£ÐÍÓ¦Óÿª·¢Êµ¼ù 4-19[ÔÚÏß]
UAF¼Ü¹¹ÌåϵÓëʵ¼ù 4-11[±±¾©]
AIÖÇÄÜ»¯Èí¼þ²âÊÔ·½·¨Óëʵ¼ù 5-23[ÉϺ£]
»ùÓÚ UML ºÍEA½øÐзÖÎöÉè¼Æ 4-26[±±¾©]
ÒµÎñ¼Ü¹¹Éè¼ÆÓ뽨ģ 4-18[±±¾©]
 
×îÐÂÎÄÕÂ
´óÊý¾Ýƽ̨²âÊÔ
΢·þÎñ¼Ü¹¹ÏµIJâÊÔÖ®µÀ
´ÓÁã¿ªÊ¼ÕÆÎÕ΢·þÎñÈí¼þ²âÊÔ
ÈçºÎ½øÐвâÊÔÐèÇó·ÖÎö£º´Ó½ÓÊÕÐèÇóµ½ÓÃÀýÉè¼Æ
python_selenium×Ô¶¯»¯²âÊÔ¿ò¼Ü
×îпγÌ
²âÊÔÐèÇó·ÖÎöÓë²âÊÔÓÃÀýÉè¼Æ
ÐÔÄܲâÊÔ·½·¨Óë¼¼Êõ
×Ô¶¯»¯²âÊÔ¿ò¼ÜÉè¼Æ¸ß¼¶Êµ¼ù
½Ó¿Ú×Ô¶¯»¯²âÊÔ·½·¨Ó빤¾ß
Èí¼þ²âÊÔ·½·¨Óëʵ¼ù(¹á´©°¸Àý)
³É¹¦°¸Àý
ij֧¸¶ÆóÒµ µ¥Ôª²âÊÔÓëÖØ¹¹Åàѵ
±±¾© Óû§ÌåÑé¡¢¿ÉÓÃÐÔ²âÊÔÓëÆÀ¹À
ij¾ü¹¤Ñо¿µ¥Î» ×Ô¶¯»¯²âÊÔ·½·¨¡¢°¸ÀýÓ빤¾ß
ÖªÃûÏû·Ñ½ðÈÚ¹«Ë¾ ̽Ë÷ÐÔ²âÊÔÓë²âÊÔ·ÖÎö
±±¾© º½Ìì¿Æ¹¤Ä³×Ó¹«Ë¾ Èí¼þ²âÊԼܹ¹Ê¦