สอนใช้งาน iMacros : ตอนที่ 3 การทำซ้ำโดยนำเข้าข้อมูลจาก CSV
ในบทความสอนใช้งาน iMacros ตอนที่ 1 และตอนที่ 2 ได้นำเสนอการติดตั้ง iMacros, การสร้าง Macro โดยการ RECORD, ตัวอย่างscript และ command ที่สำคัญใน Macro, การแก้ไข Macro และการนำเข้า Macro จากภายนอก
สำหรับบทความนี้จะนำเสนอการเรียกใช้ข้อมูลจากไฟล์ CSV ซึ่งจะช่วยเพิ่มประสิทธิภาพให้ Macro ทำงานกับข้อมูลที่อยู่ในรูปเมตริกซ์ หรือข้อมูลที่สามารถจัดให้อยู่ในรูปของตารางที่มีหลายแถวหลายหลักได้ง่ายขึ้น
ในบทความนี้ผมจะนำเสนอในประเด็นต่าง ๆ ดังนี้
1. ไฟล์ CSV เป็นอย่างไร?
2. สร้างไฟล์ CSV อย่างไร?
3. หลักการ Import ไฟล์ CSV เข้ามาใน Macro ทำอย่างไร?
4. Command ที่ทำให้ Macro เรียกใช้ข้อมูลจาก CSV ไฟล์คือ?
5. ตัวอย่างสร้าง Macro ให้เรียกใช้ CSV ไฟล์ ในกรณีที่แต่ละ Webpage มีส่วน Input ข้อมูลคล้ายคลึงกัน
6. ตัวอย่างสร้าง Macro ให้เรียกใช้ CSV ไฟล์ ในกรณีที่แต่ละ Webpage ไม่เหมือนกันแต่ข้อมูลที่เราใช้ Input เหมือนกัน
สำหรับบทความนี้จะนำเสนอการเรียกใช้ข้อมูลจากไฟล์ CSV ซึ่งจะช่วยเพิ่มประสิทธิภาพให้ Macro ทำงานกับข้อมูลที่อยู่ในรูปเมตริกซ์ หรือข้อมูลที่สามารถจัดให้อยู่ในรูปของตารางที่มีหลายแถวหลายหลักได้ง่ายขึ้น
ในบทความนี้ผมจะนำเสนอในประเด็นต่าง ๆ ดังนี้
1. ไฟล์ CSV เป็นอย่างไร?
2. สร้างไฟล์ CSV อย่างไร?
3. หลักการ Import ไฟล์ CSV เข้ามาใน Macro ทำอย่างไร?
4. Command ที่ทำให้ Macro เรียกใช้ข้อมูลจาก CSV ไฟล์คือ?
5. ตัวอย่างสร้าง Macro ให้เรียกใช้ CSV ไฟล์ ในกรณีที่แต่ละ Webpage มีส่วน Input ข้อมูลคล้ายคลึงกัน
6. ตัวอย่างสร้าง Macro ให้เรียกใช้ CSV ไฟล์ ในกรณีที่แต่ละ Webpage ไม่เหมือนกันแต่ข้อมูลที่เราใช้ Input เหมือนกัน
ไฟล์ CSV เป็นอย่างไร?
CSV (Comma Separated Values) เป็นไฟล์ในรูปแบบที่แต่ละค่าในไฟล์ถูกคั่นด้วยเครื่องหมายจุลภาคสามารถสร้างและแก้ไขได้ใน MS Excel หรือ โปรแกรมประเภท Text Editor เช่น Wordpad หรือ Notepad เป็นต้น และยังสามารถนำมาใช้งานได้กับ iMacrosสร้างไฟล์ CSV อย่างไร?
การสร้าง CSV ไฟล์แนะนำให้ทำวิธีใดวิธีหนึ่งต่อไปนี้1 การสร้างไฟล์ CSV โดยใช้ Wordpad หรือ Notepad
การสร้าง CSV ไฟล์โดยใช้ Wordpad หรือ Notepad เป็นวิธีที่ง่ายที่สุดซึ่งทำโดย
1.1 เปิด Wordpad หรือ Notepad ขึ้นมา
1.2 พิมพ์ข้อมูลลงไปโดยแต่ละข้อมูลจะต้องคั่นด้วยเครื่องหมายจุลภาค (,) และจะนับแต่ละบรรทัดเป็นข้อมูล 1 ชุด
เช่น ในที่นี้ผมพิมพ์ข้อมูล 2 ชุดนี้ลงไปใน Wordpad หรือ Notepad
ก็จะได้ข้อมูลคือ ชื่อ email และ URL 2 ชุดที่ต่างกัน
1.3 บันทึกแฟ้มเป็นไฟล์ชื่อใดก็ได้ และให้ใส่นามสกุลเป็น .csv
2 การสร้างไฟล์ CSV โดยใช้ Ms Excel
2.1 นำข้อมูลที่ต้องการไปใส่ใน row หรือ column ตามความต้องการ โดยคุณสามารถคัดลอกข้อมูลจาก Notepad มาวางก็ได้
2.2 ในการบันทึกข้อมูลให้เลือกชนิดที่บันทึกเป็น CSV (MS-DOS) (*.csv)
หลักการ Import ไฟล์ CSV เข้ามาใน Macro ทำอย่างไร?
ถ้าผมต้องการกรอกข้อมูลชุดเดียวคือ ชื่อ, password, email และ URL บน 100 Webpage ผมก็นำ 100 Webpage นั้นไปสร้างเป็นชุดข้อมูลในไฟล์ CSV จากนั้นสร้าง Macro ขึ้นมา 1 Macro เท่านั้น ซึ่ง Macro นี้จะเรียกข้อมูลจาก ไฟล์ CSV มาคราวละ Webpage และสั่งให้ Macro ทำซ้ำจนครบ 100 Webpage ซึ่งจะเห็นว่าการใช้วิธีนี้ก็สามารถทำงานได้สำเร็จโดยไม่ต้องสร้าง Macro ขึ้นมาถึง 100 Macro เลยCommand ที่ทำให้ Macro เรียกใช้ข้อมูลจาก CSV ไฟล์คือ?
การเขียน Script และ Command ให้ Macro ทำได้โดยใช้คำสั่งที่ได้แนะนำไปในบทความ สอนใช้งาน iMacros : ตอนที่ 2 Scripts และ Commands ซึ่งขอยกมาทบทวนอีกครั้งดังนี้Command ที่ใช้ในการเรียกใช้ไฟล์ .csv
CMDLINE !DATASOURCE ชื่อไฟล์.csvหรือ
SET !DATASOURCE ชื่อไฟล์.csvหรือกรณีวางไฟล์เอาไว้นอก Folder Datasources เช่นวางไว้ที่ Drive D ก็ใช้คำสั่ง
SET !DATASOURCE D:\ชื่อไฟล์.csv
Command ที่เกี่ยวข้องกับการเรียกใช้งาน ไฟล์ .csv จาก Datasourse
Command ที่กำหนดการเรียกใช้ข้อมูลจาก Column ที่ 1 ถึง 3
SET !DATASOURCE_COLUMNS 3เลข 3 คือจำนวน Column ที่เราจะเรียกใช้ข้อมูลอาจจะกำหนดเป็น 1 หรือ 9 หรือเลขอื่น ๆ ก็ได้ขึ้นอยู่กับข้อมูลนำเข้า
Command ที่กำหนดให้ทำซ้ำโดยใช้แต่ละแถวตัวแบ่งการดำเนินการแต่ละรอบของ LOOP
SET !DATASOURCE_LINE {{!LOOP}}
Command ที่กำหนดว่าการทำงานแบบ LOOP นั้นจะทำซ้ำตั้งแต่แถวใดในไฟล์ .csv จาก Datasourse
SET !LOOP 1ถ้าใส่เลข 1 ก็แปลว่าเริ่มทำซ้ำจากบรรทัดที่ 1
จากข้างต้นที่กล่าวมาสามารถเขียนรวมกันได้เป็น
SET !DATASOURCE ชื่อไฟล์.csvและโค้ดข้างต้นนี้สามารถเอาประยุกต์กับ Macro ที่มีการเรียกใช้ CSV ไฟล์ได้เลย
SET !DATASOURCE_COLUMNS 3
SET !DATASOURCE_LINE {{!LOOP}}
SET !LOOP 1
ตัวอย่างที่ 1 ขั้นตอนการสร้าง Macro ให้เรียกใช้ CSV ไฟล์ :
ในกรณีที่แต่ละ Webpage มีส่วน Input ข้อมูลคล้ายคลึงกัน
ในที่นี้ผมขอยกตัวอย่างการสมัครสมาชิกเว็บ Pligg ของต่างประเทศจำนวน 12 แห่งด้วย iMacros ซึ่งสามารถประยุกต์ใช้ตามขั้นตอนดังนี้
ขั้นที่ 1 สร้าง Macro โดยใช้วิธีการบันทึก
โดยขั้นแรกจะต้องพิจารณาว่าในการสมัครสมาชิกเว็บ Pligg แต่ละแห่งจะต้องกรอกข้อมูลใดบ้าง ซึ่งทำได้โดยวิธีทดลองกรอกข้อมูลจริงและใช้วิธี RECORD เอาไว้
เช่น ในที่นี้ผมไปสมัครสมาชิกที่
http://www.hotscripts.ro/และทำการ Record การกรอกข้อมูลบน Webpage เอาไว้ได้ดังนี้
โค้ดที่ได้
VERSION BUILD=6700624 RECORDER=FX TAB T=1 URL GOTO=http://www.hotscripts.ro/ TAG POS=1 TYPE=A ATTR=TXT:Register TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:reg_username CONTENT= username TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:reg_email CONTENT=email SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/register/ ATTR=ID:reg_password CONTENT=password SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/register/ ATTR=ID:reg_verify CONTENT=password TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register/ ATTR=ID:recaptcha_response_field CONTENT=Lordจากนั้นผมก็ใช้วิธีเดียวกันบันทึกข้อมูลในการสมัครเว็บ Pligg อีกแห่งซึ่งได้โค้ดดังนี้marams TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=NAME:submit&&VALUE:Createuser
VERSION BUILD=6700624 RECORDER=FX TAB T=1 URL GOTO=http://www.englishdigg.com/ TAG POS=1 TYPE=A ATTR=TXT:Register TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register ATTR=ID:reg_username CONTENT=username TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register ATTR=ID:reg_email CONTENT=email SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/register ATTR=ID:reg_password CONTENT=password SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/register ATTR=ID:reg_verify CONTENT=password TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/register ATTR=ID:recaptcha_response_field CONTENT=cautdoupaet TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=NAME:submit&&VALUE:Createuser
หมายเหตุ โค้ดสีแดงคือข้อมูลส่วนตัวของแต่ละคนที่ใช้ต่างกัน
ขั้นที่ 2 วิเคราะห์ Macro ที่ได้เพื่อดูความเหมือนและความแตกต่าง
จากโค้ดในขั้นที่ 1 จะเห็นว่าWebpage ของ Pligg ที่เราทำการสมัครสามารถใช้ข้อมูลในการสมัครชุดเดียวกันได้
ข้อมูลที่ใช้กรอกเหมือนกัน
ได้แก่ username, email และ password
ส่วนข้อมูลที่ใช้ต่างกัน
ได้แก่ URL ของเว็บ Pligg และ รหัส Captcha ซึ่งรหัส Captcha นั้นได้มาจากการสุ่มจึงเป็นไปได้ยากที่จะเหมือนกัน
ขั้นที่ 3 ดัดแปลง Macro ให้สามารถใช้ได้กับทุก Webpage (ของ Pligg แห่งอื่น ๆ)
จากขั้นที่ 2 ผมจึงทำการกำหนด username, email และ password เป็นตัวแปรซึ่งมี 3 ค่าพอดี ส่วนการกรอก Captcha ผมจะใช้วิธีหยุดรอเพื่อให้ผู้สมัครกรอกเองแล้วสั่งให้ Macro ทำงานต่อ ซึ่งโค้ดที่ได้เป็นดังนี้
VERSION BUILD=6700624 RECORDER=FX TAB T=1 SET !VAR1 username SET !VAR2 email SET !VAR3 password URL GOTO=http://www.hotscripts.ro/ TAG POS=1 TYPE=A ATTR=TXT:Register TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_username CONTENT={{!VAR1}}TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_email CONTENT={{!VAR2}} SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_password CONTENT={{!VAR3}} SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_verify CONTENT={{!VAR3}} pause 'หยุดเพื่อกรอก Captcha และกด Continue TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=NAME:submit&&VALUE:Createuser
โปรดสังเกตว่า
* Macro ด้านบนยังคงใช้ได้กับ hotscripts.ro เพียงแห่งเดียว
* ผมได้แทนที่ TAG ที่เป็นขั้นตอนการกรอก Captcha ด้วย คำสั่ง pause เพื่อให้เรากรอกด้วยตนเอง
* ผมใช้โค้ด FORM=ACTION: * แทน FORM=ACTION: /register เพื่อป้องกันความผิดพลาดในการกรอก Form
ขั้นที่ 4 สร้างไฟล์ CSV
สมมติว่า ผมต้องการใช้ Macro ที่สร้างนี้ใช้ได้กับรายชื่อเว็บ Pligg ด้านล่าง (คุณสามารถเพิ่ม URL ของ Pligg ได้ตามต้องการ)
http://www.hotscripts.roในขั้นนี้นี่เองที่เราจำเป็นต้องใช้ไฟล์ CSV เข้ามาช่วย ซึ่งทำโดย
http://bookmarknews.com
http://www.opineaboutme.com
http://www.hubstory.com
http://indelve.com
http://clipbookmarks.com
http://www.englishdigg.com
http://www.biqboq.com
http://www.trackerz.com
http://www.indexhit.com
http://www.socialmedia1.com
http://www.sgbuzz.com
4.1 สร้างไฟล์ CSV ตามที่ได้สอนไปแล้วข้างต้นโดยให้ และแถวแทน URL ของ Pligg แต่ละแห่งและตั้งชื่อไฟล์ว่าPliggreg.csv
4.2 คัดลอกไฟล์ Pliggreg.csv ไปวางไว้ใน Folder Datasources ใน C:\Documents and Settings\All Users\My Documents\iMacros
ขั้นที่ 5 เรียกใช้ ไฟล์ CSV เพื่อทำให้ Macro ใช้ได้กับ Pligg แห่งอื่น ๆ
เมื่อสร้าง Pliggreg.csv และวางใน Folder ที่ระบุแล้วต่อไปเราจะแก้ไข Macro อีกครั้งเพื่อให้ Macro ดึงข้อมูลจากPliggreg.csv มาทำซ้ำซึ่งทำได้โดยการเพิ่มชุดโค้ดต่อไปนี้เข้าไปในโค้ดของขั้นที่ 3
SET !DATASOURCE Pliggreg.csv SET !DATASOURCE_COLUMNS 1 SET !DATASOURCE_LINE {{!LOOP}} SET !LOOP 1และได้โค้ดที่แก้ไขแล้วเป็น
VERSION BUILD=6700624 RECORDER=FX TAB T=1 SET !DATASOURCE Pliggreg.csv SET !DATASOURCE_COLUMNS 1 SET !DATASOURCE_LINE {{!LOOP}} SET !LOOP 1 SET !VAR1 username SET !VAR2 email SET !VAR3 password URL GOTO={{!COL1}} TAG POS=1 TYPE=A ATTR=TXT:Register TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_username CONTENT={{!VAR1}} TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_email CONTENT={{!VAR2}} SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_password CONTENT={{!VAR3}} SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_verify CONTENT={{!VAR3}} pause 'หยุดเพื่อกรอก Captcha และกด Continue TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=NAME:submit&&VALUE:Createuser
ขั้นที่ 6 ตรวจสอบการทำงานของ Macro หรือปรับปรุงให้มีประสิทธิภาพสูงสุด
ในที่นี้ผมจะเพิ่มโค้ด
SET !ERRORIGNORE YESและ
SET !ERRORCONTINUE YES
SET !TIMEOUT_STEP 3โดยเราเพิ่มเข้าไปเพื่อไม่ให้ Macro หยุดทำงานกระทันหันเมื่อมีบางเว็บเกิด Error และใส่เพื่อให้ Macro ทำงานแต่ละขั้นตอนเร็วขึ้น ทำให้โค้ดในขั้นที่ 5 ดัดแปลงเป็น
SET !TIMEOUT_TAG 3
VERSION BUILD=6700624 RECORDER=FX TAB T=1 SET !ERRORIGNORE YES SET !ERRORCONTINUE YES SET !TIMEOUT_STEP 3 SET !TIMEOUT_TAG 3 SET !DATASOURCE Pliggreg.csv SET !DATASOURCE_COLUMNS 1 SET !DATASOURCE_LINE {{!LOOP}} SET !LOOP 1 SET !VAR1 username SET !VAR2 email SET !VAR3 password URL GOTO={{!COL1}} TAG POS=1 TYPE=A ATTR=TXT:Register TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_username CONTENT={{!VAR1}} TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:* ATTR=ID:reg_email CONTENT={{!VAR2}} SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_password CONTENT={{!VAR3}} SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:* ATTR=ID:reg_verify CONTENT={{!VAR3}} pause 'หยุดเพื่อกรอก Captcha และกด Continue TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:thisform ATTR=NAME:submit&&VALUE:Createuser
ถึงขั้นนี้โค้ดที่สร้างขึ้นก็สามารถนำไปใช้ได้จริง ซึ่งคุณอาจจะทดลองทำตามหรือนำโค้ดที่สำเร็จแล้วไปลองใช้งานดู
ขั้นที่ 7 การนำ Macro ที่สร้างไปใช้งาน
7.1 ให้คุณศึกษาวิธีนำเข้า Macro จากตอนท้ายของบทความ สอนใช้งาน iMacros : ตอนที่ 2 Scripts และ Commands
7.2 ในการสั่งให้ Macro ทำงาน ให้กด Play (Loop) และในที่นี้ให้ตั้งค่า Loop เป็น 12 (เพราะมี 12 เว็บ Pligg)
สิ่งที่สำคัญในตัวอย่างนี้คือหลักการสร้าง Macro ไม่ใช่หลักการสร้าง Macro เพื่อลงทะเบียน Pligg ดังนั้นถ้าคุณสามารถทำความเข้าใจขั้นตอนการสร้าง Macro จากตัวอย่างข้างต้นได้ คุณก็จะสามารถประยุกต์แนวทางนี้ไปใช้กับงานอื่น ๆ ได้อีกมากมาย
ตัวอย่างที่ 2 วิธีสร้าง Macro ให้เรียกใช้ CSV ไฟล์ :
ในกรณีที่แต่ละ Webpage ไม่เหมือนกัน แต่ข้อมูลที่เราใช้ Input เหมือนกัน
ในตัวอย่างที่กล่าวมาแล้วเป็นกรณีที่ Webpage การลงทะเบียนของเว็บ Pligg นั้นเหมือนกันสำหรับตัวอย่างนี้ผมจะยกตัวอย่างการสร้าง Macro และ CSV ในกรณีที่ Webpage ที่เราต้องการดำเนินการนั้นไม่เหมือนกัน แต่ข้อมูลที่เราใช้กรอกแบบฟอร์มบน Webpage นั้นเหมือนกัน เช่น
สมมติว่าผมต้องการนำข้อมูลข้างบนนี้ไป Submit หรือลงทะเบียนกับ
http://www.yahoo.comข้อมูลที่ผมต้องการใช้กรอกในแต่ละแห่งนั้นค่อนข้างแตกต่างกันมาก ผมจึงพิจารณาว่าข้อมูลที่เกี่ยวข้องกับการสมัครตามที่ต่าง ๆ นั้นจะต้องมีอะไรบ้าง ซึ่งรวมแล้วมี 18 อย่างได้แก่
http://www.blinklist.com
http://www.bofunk.com
Username,FirstName,LastName,E-mail,Full Name,Password,URL,Tags,Phone,Adress,City,State/Province,Postal Code,Country,html code,BB code,BB code2,Descriptionผมจึงสร้างไฟล์ CSV ที่มี 1 แถว 18 คอลัมน์ และตั้งชื่อว่า Mysubmit.csv โดยแต่ละคอลัมน์เป็นข้อมูลที่ใช้ Submit ลงทะเบียน หรือ Login เป็นประจำ ซึ่งเมื่อสร้างเสร็จจะได้ผลลัพธ์ดังตัวอย่างโค้ดด้านล่าง
Hackublog,Hackublog,Sun,hackublog@ymail.com,Hackublog Sun,xxxxxxxx,http://www.hackublog.com,Blogger SEO Facebook Tutorials,662-2222222,206 BKK,Bangkoknoi,Bangkok,10700,Thai,Blogger SEO Facebook Tutorials,[link=http://www.hackublog.com]Blogger SEO Facebook Tutorials[/link],[url=http://www.hackublog.com]Blogger SEO Facebook Tutorials[/url],BloggerSEO Tutorials
เหตุผลที่ผมสร้างหลายคอลัมน์ก็เพื่อให้สามารถใช้ไฟล์ Mysubmit.csv ในกรณีอื่น ๆ ได้อีกหลาย ๆ แห่งและอีกหลายกรณี
ขั้นต่อมาผมได้ลองสมัครสมาชิกและได้บันทึกการลงทะเบียนของทั้ง 3 แห่งเอาไว้ จากนั้นทำการดัดแปลงโค้ดของ Macro โดยใช้วิธีเดียวกับตัวอย่างข้างบนที่ได้ทำให้ดูไปแล้ว (ขอละการอธิบาย) และสุดท้ายได้โค้ดของการลงทะเบียนทั้ง 3 แห่งออกมาเป็น
'001 VERSION BUILD=6650406 RECORDER=FX TAB T=1 TAB CLOSEALLOTHERS SET !EXTRACT NULL SET !ERRORIGNORE YES SET !EXTRACT_TEST_POPUP NO SET !ERRORCONTINUE YES SET !DATASOURCE Mysubmit.csv SET !DATASOURCE_COLUMNS 20 URL GOTO=http://www.yahoo.com TAG POS=1 TYPE=A ATTR=TXT:Newhere? Sign Up WAIT SECONDS=2 TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:firstname CONTENT={{!COL2}} TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:secondname CONTENT={{!COL3}} TAG POS=1 TYPE=SELECT FORM=NAME:regFormBody ATTR=ID:gender CONTENT=%m TAG POS=1 TYPE=SELECT FORM=NAME:regFormBody ATTR=ID:mm CONTENT=%7 TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:dd CONTENT=7 TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:yyyy CONTENT=1980 TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:postalcode CONTENT={{!COL13}} TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:yahooid CONTENT={{!COL1}} SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:regFormBody ATTR=ID:password CONTENT={{!COL6}} SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:regFormBody ATTR=ID:passwordconfirm CONTENT={{!COL6}} TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:altemail CONTENT={{!COL4}} TAG POS=1 TYPE=SELECT FORM=NAME:regFormBody ATTR=ID:secquestion CONTENT=%custom TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:customsecquestion1 CONTENT=Father's Full Name TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:secquestionanswer CONTENT=Michael Tomo Jones TAG POS=1 TYPE=SELECT FORM=NAME:regFormBody ATTR=ID:secquestion2 CONTENT=%custom TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:customsecquestion2 CONTENT=Place I Was Born TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:regFormBody ATTR=ID:secquestionanswer2 CONTENT={{!COL11}} pause 'กรอก Captcha TAG POS=1 TYPE=INPUT:SUBMIT FORM=ID:regFormBody ATTR=ID:IAgreeBtn '002 VERSION BUILD=6650406 RECORDER=FX TAB CLOSEALLOTHERS SET !EXTRACT NULL SET !ERRORIGNORE YES SET !EXTRACT_TEST_POPUP NO SET !ERRORCONTINUE YES SET !DATASOURCE Mysubmit.csv SET !DATASOURCE_COLUMNS 20 TAB T=1 URL GOTO=http://www.blinklist.com/user/join TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/user/join ATTR=ID:username CONTENT={{!COL1}} TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/user/join ATTR=ID:email CONTENT={{!COL4}} SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=ACTION:/user/join ATTR=ID:password1 CONTENT={{!COL6}} TAG POS=1 TYPE=INPUT:TEXT FORM=ACTION:/user/join ATTR=ID:firstname CONTENT={{!COL2}} TAG POS=1 TYPE=INPUT:RADIO FORM=ID:signup-w-email ATTR=ID:gender2 TAG POS=1 TYPE=SELECT FORM=ACTION:/user/join ATTR=ID:day CONTENT=%17 TAG POS=1 TYPE=SELECT FORM=ACTION:/user/join ATTR=ID:month CONTENT=%6 TAG POS=1 TYPE=SELECT FORM=ACTION:/user/join ATTR=ID:year CONTENT=%1980 pause 'กรอก Captcha TAG POS=1 TYPE=INPUT:CHECKBOX FORM=ACTION:/user/join ATTR=ID:termCondition CONTENT=YES TAG POS=1 TYPE=BUTTON ATTR=TXT:Sign me up! '003 VERSION BUILD=6650406 RECORDER=FX TAB T=1 TAB CLOSEALLOTHERS SET !EXTRACT NULL SET !ERRORIGNORE YES SET !EXTRACT_TEST_POPUP NO SET !ERRORCONTINUE YES SET !DATASOURCE Mysubmit.csv SET !DATASOURCE_COLUMNS 20 TAB T=1 URL GOTO=http://www.bofunk.com/register.php TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:uname3 CONTENT={{!COL1}} SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:NoFormName ATTR=NAME:pword3 CONTENT={{!COL6}} SET !ENCRYPTION NO TAG POS=1 TYPE=INPUT:PASSWORD FORM=NAME:NoFormName ATTR=NAME:password2 CONTENT={{!COL6}} TAG POS=1 TYPE=INPUT:TEXT FORM=NAME:NoFormName ATTR=NAME:email CONTENT={{!COL4}} TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:country CONTENT=%US TAG POS=1 TYPE=INPUT:RADIO FORM=NAME:NoFormName ATTR=NAME:gender&&VALUE:female TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:month CONTENT=%9 TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:day CONTENT=%15 TAG POS=1 TYPE=SELECT FORM=NAME:NoFormName ATTR=NAME:year CONTENT=%1983 pause 'กรอก Captcha TAG POS=1 TYPE=INPUT:SUBMIT FORM=NAME:NoFormName ATTR=VALUE:Register!
โปรดสังเกตว่าการลงทะเบียนแต่ละแห่งใช้ข้อมูลค่อนข้างต่างกัน แต่เมื่อปรับแก้ Script ของ Macro แล้วก็ยังใช้ข้อมูลจากไฟล์ Mysubmit.csv เพียงไฟล์เดียวได้ และโปรดสังเกตอีกว่าผมได้นำโค้ดทั้ง 3 ชุดมารวมเป็น Macro เดียวกันเพื่อให้สามารถสั่ง run เพียงครั้งเดียวได้
ขั้นต่อมาผมได้นำ Macro ที่สร้างขึ้นและไฟล์ Mysubmit.csv ไปเก็บไว้ในโฟล์เดอร์ Macros และ Datasources ตามลำดับ
ส่วนขั้นตอนการสั่งให้ Macro ทำงานผมจะสั่งแบบ Play ปกติ ไม่ใช่ Play(Loop) ซึ่งเมื่อทำเช่นนี้เราสามารถลงทะเบียนทั้ง 3 แห่งนี้โดยการใช้ข้อมูลจาก CSV เพียงไฟล์เดียวและ Run Macro เพียงครั้งเดียวเท่านั้น
บทสรุปของการ Import ไฟล์ CSV เข้าไปในการทำงานของ Macro
จากทั้งสองตัวอย่างนี้แต่ละวิธีมีข้อดีและข้อเสียต่างกันและ เราควรเลือกใช้ให้เหมาะสมดังนี้* ใช้รูปแบบในตัวอย่างที่ 1 เมื่อ Webpage ที่กระทำนั้นมีลักษณะคล้ายคลึงกันค่อนข้างมาก
* ใช้รูปแบบในตัวอย่างที่ 2 เมื่อ ต้องทำการ Submit ที่เดิมซ้ำ ๆ แต่ข้อมูลการ Submit เปลี่ยนบ่อย ๆ เช่นการ Submit บทความเป็นต้น
ในบทความต่อไปผมจะนำเสนอรูปแบบการนำเข้าข้อมูลโดยใช้ Text file ซึ่งมีรูปแบบการใช้คล้ายกับ CSV file ทำงานได้คล้ายคลึงกัน อย่าลืมติดตามอ่านกันนะครับ สวัสดีครับ