ตัวอย่างนี้เป็นการใช้ selenium เพื่อตรวจสอบความถูกต้องของหน้ารายงานสรุปสินค้าประจำวันและประจำดือน
การทำงานก็จะเริ่มจากใส่ปีและเดือนลงไปเพื่อค้นหารายงานประจำเดือนนั้น
และมีลิ้งค์ให้สามารถคลิกเข้าไปดูแยกเป็นรายวันได้
ทั้งแบบรายวันและรายเดือนจะมีลิสของสินค้าไว้และทำการรวมค่าสรุปในตอนท้าย
selenium ที่เขียนนี้จะทำการรวมค่าของข้อมูลแล้วเปรียบเทียบกับที่แสดงในหน้ารายงานว่าตรงกันหรือไม่
ถ้าไม่ตรงจะเด้งป็อปอัพเตือนและหยุดการเทส
*ขออภัยที่ไม่มีเว็บให้ลองนะคะ ดูแต่โค้ดไปแล้วกันเนาะ
**โค้ดทั้งหมดมันต่อกันเป็นชุดเดียวนะคะดูให้มันต่อกันนะ อิอิ
จะอธิบายแต่ละคำสั่งแบบสั้นๆนะคะ
รายละเอียดการใช้การทำงานของแต่ละคำสั่งอ่านได้ในกระทู้คำสั่งนั้นๆค่ะ
1.สั่ง open เปิด url ที่เราจะทำงาน
2. click ที่ลิ้งค์ HOME (<a href=url>HOME</a>)
3. waitForVisible รอให้ลิ้งค์ Previous ปรากฏบนหน้าเว็บก่อนถึงจะทำงานต่อไป
4. ใส่ค่าปีที่เราต้องการลงไป ในที่นี้คือ 2011 (ไม่ได้ทำสุ่มปีเนื่องจากไม่ทราบช่วงข้อมูลแน่ชัด)
5. เขียน javascript สุ่มเดือนและเติม0ลงไปด้านหน้าถ้าเป็นเลข 1-9
6. พิมปีและเดือนในช่องค้นหาเป็นรูปแบบ yyyy-mm
7. กดปุ่ม submit
8. รอให้ลิ้งค์ Previous ปรากฏบนหน้าเว็บก่อนถึงจะทำขั้นต่อไป
9. storeXpathCount สั่งให้นับจำนวน <a href=''> ทั้งหมดในหน้านั้น
10. เอาจำนวนที่นับได้มาลบออก 5 ซึ่งเป็นลิ้งค์อื่นๆที่เราไม่ต้องการ
ตรงกรอบเบอร์4 จะเป็นการประกาศและแปลงค่าตัวแปรให้เป็น float รอไว้เพื่อใช้เก็บค่าไปหาผลรวมในภายหลัง
กรอบสีเหลือง เริ่มคำสั่ง while loop แรกเพื่อวนคลิกเข้าทุกลิ้งค์ที่เป็นรายงานประจำวัน
กรอบสีแดง
บรรทัดแรกนับจำนวนแท็ก <tr> ทั้งหมดในหน้านั้นแล้วลบออกด้วยจำนวนช่องที่เราไม่ต้องการใช้
ที่เหลือเป็นการกำหนดค่าเริ่มต้นให้ตัวแปรต่างๆที่เราจะใช้ต่อไป
กรอบสีเขียว
เริ่ม while loop ที่สองใช้หาค่ารวมของข้อมูลในหน้ารายงานรายวัน
วนรับค่าจากในตารางทีละบรรทัดและแปลงค่าที่รับมาจาก string เป็น float
กรอบสีฟ้า
ใช้ gotoIf เพื่อเก็บผลรวมแยกตามประเภทไม้
เช่นถ้าเป็นไม้เชื้อเพลิงก็จะข้ามไปทำงานที่ label typeFuel เสร็จแล้วก็จะข้ามไปทำงานต่อที่ label finish
label finish เพิ่มค่าตัววนลูปไปอีก1 (k++) เมื่อครบเแล้วจบลูปที่2
จากนั้นเก็บค่ายอดรวมที่แสดงในหน้าเว็บมาแปลงเป็น floatและตัดจุดเป็นทศนิยม2ตำแหน่งทั้งหมด
เปรียบเทียบว่าผลรวมที่หน้าเว็บกับที่รวมเองนั้นเท่ากันหรือไม่
ถ้าไม่เท่ากันจะข้ามการทำงานไปที่ label ที่กำหนดเพื่อเด้งป็อปอัพเตือนและจบการเทสทันที
ถ้าเท่ากันทั้งหมดก็จะข้ามการทำงานไปที่ label continue
*จริงๆมันหยุดทำงานตั้งแต่ คำสั่ง assertEval ได้ค่าเป็นเท็จละค่ะ
แต่เพื่อความไม่ประมาทเลยแถม label stop ให้อีกอัน ฮ่าๆ
label continue อยู่ตรงนี้
การทำงานที่ทำต่อจาก label continue คือคลิกที่ลิ้งค์ Back กลับไปหน้ารายงานแบบรายเดือน
อ่านและแปลงค่ารวมของไม้ชนิดต่างในหน้ารายงานประจำเดือนเป็น float แล้วบวกรวมไว้
เมื่อทำจนครบตามจำนวนที่กำหนดไว้ตั้งแต่ loop แรกก็จบการทำงาน while loop แรก
แปลงค่าเป็น float ทศนิยม2ตำแหน่ง แล้วเอาผลรวมในหน้าเว็บมาเปรียบเทียบกับที่รวมเองว่าเท่ากันหรือไม่
ถ้าไม่เท่ากันก็จะข้ามการทำงานไปที่ label ที่กำหนดเด้งป็อปอัพเตือนและจบการรันสคริปต์ทันที
เหมือนกับการเทียบค่าในหน้ารายวันค่ะ
label stop เด้งป็อปอัพบอกว่าเทสจบละนะ !
Selenium IDE - ตัวอย่างการเขียน selenium ให้ตรวจสอบความถูกต้องของข้อมูล
Moderator: mindphp, ผู้ดูแลกระดาน
-
- PHP VIP Members
- โพสต์: 2969
- ลงทะเบียนเมื่อ: 08/09/2014 10:34 am
Selenium IDE - ตัวอย่างการเขียน selenium ให้ตรวจสอบความถูกต้องของข้อมูล
Trust me, I'm a Programmer
-
- Similar Topics
- ตอบกลับ
- แสดง
- โพสต์ล่าสุด
-
-
โพสต์ใหม่ Selenium IDE - การแก้ปัญหาใน Selenium เมื่อเกิด Windows Alert
โดย GoB » 13/02/2015 1:43 pm » ใน Software testing - 0 ตอบกลับ
- 5778 แสดง
-
โพสต์ล่าสุด โดย GoB
13/02/2015 1:43 pm
-
-
-
โพสต์ใหม่ TIP : วิธีการสร้างตัวแปรมาวนลูป Selenium IDE
โดย M031 » 02/12/2015 10:45 pm » ใน Software testing - 0 ตอบกลับ
- 1119 แสดง
-
โพสต์ล่าสุด โดย M031
02/12/2015 10:45 pm
-
-
-
โพสต์ใหม่ สอบถามการใส่ข้อมูลหน้าต่าง pop up ใน selenium
โดย anawatj » 05/09/2023 12:26 pm » ใน Programming - C/C++ & java & Python - 2 ตอบกลับ
- 1472 แสดง
-
โพสต์ล่าสุด โดย anawatj
05/09/2023 2:27 pm
-
ผู้ใช้งานขณะนี้
สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 57