ก่อนอื่นต้องบอกว่าเพ็ญก็ไม่มีความรู้การสร้างเว็บไซต์นะคะ
จำได้ว่าสมัยเรียนม.ต้น (ประมาณ 20 กว่าปีก่อน🤣) เคยเรียนเขียนเว็บไซต์จาก Notepad ตอนนั้นทำตัวหนังสือวิ่งได้ก็คือว้าวมากแล้ว ตอนนี้จำไม่ได้แล้วด้วยว่าเขียนยังไงต้องถาม google 😂
ใครอยากรู้ว่าเป็นยังไง ลอง copy code ด้านล่างไปวางใน Notepad แล้ว save เป็น .html ดูได้ค่ะ
<!DOCTYPE html>
<head>
<title>PenBot Once in a Lifetime</title>
</head>
<body>
<h1>ครั้งหนึ่งฉันเคยเขียนโค้ด</h1>
<p>ตอนนั้นเรียนคอมแบบงงๆ ครูเก่งมาก สนุกดี</p>
<marquee direction="left">สวัสดีชาวโลก เราเพ็ญ เป็นบอท</marquee>
</body>
</html>
กลับมาที่หัวข้อหลัก เรื่องการกด Element บนเว็บไซต์ต่างๆ ตามขั้นตอนด้านล่าง
- เปิดเว็บไซต์
- คลิก Link 1
- คลิก Link 2
อ่านขั้นตอนก็ดูปกติดี ไม่น่าจะมีปัญหาอะไร แต่มีคนทักมาถามเพ็ญว่าทำไมโรบอทไม่คลิกปุ่มให้ แล้วมีวิธีแก้ไขยังไงได้บ้าง
เพ็ญก็เลยลองเอาเว็บไซต์มาดูก็พบว่ามันมีรายละเอียดเล็กๆ น้อยๆ อยู่ นั่นคือ
- เปิดเว็บไซต์
- คลิก Link 1 (Browser จะเปิด Tab ใหม่ขึ้นมา ไม่แน่ใจว่าคนเขียนเว็บไซต์ตั้งค่าไว้แบบนั้นหรือเปล่า)
- คลิก Link 2 (คนต้องการให้โรบอททำงาน Tab ใหม่)
คราวนี้เราลองมาไล่ดูโค้ดใน Power Automate Desktop แล้วลองสังเกตพฤติกรรมของเว็บไซต์และการทำงานของโรบอทดูว่าทำไมถึงเกิด Error

Failed Flow
ภาพด้านล่าง คือ โฟลว์ที่ไม่สามารถคลิกปุ่มได้
เราจะมาดูกันว่าเกิดอะไรขึ้น โดยการใส่ Wait 5 วินาที และใส่ Toggle Breakpoint ไว้ด้วย (บรรทัดที่ 3)
เมื่อโรบอทรันมาถึง Breakpoint มันจะหยุดทำงาน เราต้องกด Run อีกครั้ง เมื่อเรากดรันเราจะมีเวลา 5 วินาทีในการคลิก Browser มาดูว่าโรบอททำอะไรอยู่

จากภาพด้านล่าง สามารถเปิดเว็บไซต์, คลิก Link 1 ได้สำเร็จ และมี Tab ใหม่ขึ้นมาแล้ว

แต่พอกด Run แล้วเราไปคลิกดูว่าโรบอททำงานบน Browser ยังไง ปรากฏว่าโรบอทพยายามจะหา Element ใน Tab แรก

ทำให้หา Element นั้นไม่เจอและเกิด error

Solved Flow 1
ทำให้โรบอทรู้จัก Tab ใหม่โดยการใช้ Launch new Chrome

ปรับ parameter ของ Launch new Chrome (บรรทัดที่ 3) ตามรูปด้านล่าง

แก้ไข Web browser instance ในคำสั่ง Click link on web page

Solve Flow 2
ลองเขียนไปก่อน รันได้เฉยเลย 😆
อันนี้คือไปใช้คำสั่งใน UI Automation แล้วคลิก Element ปกติเลยค่ะ

เมื่อก่อนเพ็ญเคยเขียนโปรแกรม Workfusion ถ้ามีกรณีที่เว็บไซต์เปิด Tab ใหม่ แล้วเราจะสั่งให้โรบอทไปทำงานที่ไหนก็จะต้องเขียน script ให้ถูกต้องด้วย เช่น
- Switching to the last window
- Switching to the next window
- Switching to the previous window
ปัจจุบันพอมาใช้ Power Automate Desktop แล้วชีวิตดีขึ้นเลยค่ะ 😆
Tips
สำหรับคนที่ใช้ Google Chrome
การกด Left Click ส่วนใหญ่จะเป็นการเปิด browser ใน Tab เดิม

การกด Middle Click จะเป็นการเปิด browser ใน Tab ใหม่ (สามารถใช้การกด Ctrl + Left Click ก็ได้)

หวังว่าบทความนี้จะมีประโยชน์ไม่มากก็น้อย สำหรับคนที่เจอปัญหาคลิก Element บนเว็บไซต์ไม่ได้นะคะ
Video


Leave a comment