move_to_element แปลตามตัวว่า ย้ายไปที่องค์ประกอบ ซึ่งมันคือการคือการกระทำชนิดหนึ่งบนหน้าเว็บที่เคอร์เซอร์ของเมาส์จะย้ายไปที่ Elements (อีลีเมนท์) หรือองค์ประกอบ มันจะมีประโยชน์อย่างมากสำหรับการดำเนินการที่ซับซ้อนมากขึ้น อย่างเช่น การลากและวาง แต่ในการย้ายเคอร์เซอร์ของเมาส์ไปที่ Element นั้น เราจะต้องทำการอิมพอร์ต ActionChains เข้ามาช่วยในการทำงาน ซึ่งมันคือตัวช่วยในการเคลื่อนไหวของเมาส์ การทำงานของปุ่มเมาส์ หรือการกดแป้นพิมพ์ จากนั้นจึงใช้ใช้เมธอด move_to_element() ในการดำเนินการบน Selenium และในบทความนี้เราจะมาพูดถึงการใช้คำสั่ง move_to_element เพื่อย้ายหา element ที่ต้องการดำเนินการต่อด้วยซิลิเนี่ยมบนภาษาไพทอนกัน

การย้ายหา element ที่ต้องการทำเนินการต่อ

     ในโมดูล selenium (ซิลิเนียม) ก็จะมีเมธอดคำสั่งหลายๆอย่าง เช่น การคลิ๊ก การแคปภาพหน้าจอ การรีเฟรชหน้าเว็บเพจ การเลื่อนหน้าจอ และคำสั่งอื่นๆอีกมากมาย ซึ่งคำสั่งต่างๆ ก็จะจำเป็นต่อการใช้งานในการเขียนเทสเว็บอย่างมาก เราจึงจำเป็นต้องรู้คำสั่งต่างๆ เพื่อความสะดวกสบายในการเขียน ซึ่งจากบทความก่อนๆ เราได้เรียนรู้วิธีการใช้คำสั่งในการเลื่อนหา element ที่ต้องการแสดงกันไปแล้ว แต่นอกจากนั้นยังมีคำสั่งในการย้ายไปยัง element ที่เราต้องการจะดำเนินการต่อด้วย ซึ่งจะมีคำสั่งในการใช้งานดังนี้

Syntax

ActionChains(driver).move_to_element(element).perform()

วิธีในการใช้งาน

ขั้นตอนแรก เราต้องทำการอิมพอร์ตโมดูลต่างๆ เข้ามาใช้งานก่อน

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

จากนั้นให้ทำการกำหนด path และกำหนดเว็บที่ต้องการเปิด

driver = webdriver.Firefox(path)
driver.get(url)

เมื่อทำการกำหนด path และเปิดหน้าเว็บแล้ว ให้เราทำการหาชื่อของ element ที่ต้องการ โดยสามารถกดดูได้จาก F12

element = driver.find_element_by_class_name('...') #ชื่อของ element
ActionChains(driver).move_to_element(element).perform()

ตัวอย่างการใช้งาน

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

driver = webdriver.Firefox()
driver.get('https://www.mindphp.com/developer/python-test-case-selenium.html')

driver.execute_script('window.scrollTo(0,2000)')
element = driver.find_element_by_class_name('mtb_title_content')
ActionChains(driver).move_to_element(element).perform()

ผลลัพธ์

ผลลัพธ์จากการใช้คำสั่งในการย้ายหา element ที่ระบุ

ผลลัพธ์การย้าย

     จากในโค้ดตัวอย่างจะเห็นว่า เราจะต้องใช้คำสั่ง scrollTo เข้ามาช่วยในการเลื่อนหา เพราะว่า คำสั่ง moveToElement ไม่ใช่คำสั่งที่ใช้ในการเลื่อนหา element แต่เป็นการขยับเมาส์ไปที่ element หาก element ที่ต้องการไม่แสดงอยู่ก็จะไม่สามารถใช้งานได้ แต่ข้อดีของมันก็คือ เราสามารถดำเนินการต่อได้ทันที ด้วยคำสั่งต่างๆ อย่าง .click() .send_keys() ต่อในบรรทัดสุดท้ายก่อนหน้า .perform() 

 

 

เพิ่มเติมเกี่ยวกับคำสั่งในการเลื่อนหน้าเว็บ

วิธีการเลื่อนหน้าเว็บขึ้นลงโดยใช้โมดูล selenium (ซิลิเนียม)

วิธีการเลื่อนหน้าเว็บลงไปด้านล่างสุดหน้าเว็บโดยใช้โมดูล selenium (ซิลิเนียม)

การเลื่อนหาเมนูใน Dropdown list ที่มีจำนวนมากโดยใช้โมดูล selenium (ซิลิเนียม)

การใช้คำสั่ง scrollIntoView เลื่อนหา element ที่ต้องการแสดงผลด้วย Selenium (ซิลิเนียม)

กระทู้ล่าสุดจากเว็บบอร์ด
หัวข้อกระทู้
ตอบ
เปิดดู
ล่าสุด
เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
โดย mindphp จ 15 เม.ย. 2024 11:10 pm บอร์ด PostgreSQL
1
22
จ 15 เม.ย. 2024 11:14 pm โดย mindphp View Topic เช็คขนาดพื้นที่ฐานข้อมูล แต่ละก้อน แต่ละฐานข้อมูลว่าใช้พื้นที่ไปเท่าไหร่ ด้วย Comamnd Line
การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows
โดย tsukasaz ศ 12 เม.ย. 2024 2:25 pm บอร์ด Share Knowledge
0
119
ศ 12 เม.ย. 2024 2:25 pm โดย tsukasaz View Topic การติดตั้ง WSL เพื่อใช้งาน Linux Terminal บน Windows
Super Сasual Dating - Real Women
โดย heroxbay ศ 12 เม.ย. 2024 8:55 am บอร์ด Microsoft Office Knowledge & line & Etc
0
86
ศ 12 เม.ย. 2024 8:55 am โดย heroxbay View Topic Super Сasual Dating - Real Women
Unsurpassed Сasual Dating - True Females
โดย pongsu1968 ศ 12 เม.ย. 2024 5:47 am บอร์ด Microsoft Office Knowledge & line & Etc
0
109
ศ 12 เม.ย. 2024 5:47 am โดย pongsu1968 View Topic Unsurpassed Сasual Dating - True Females
Question Tag ใช้อย่างไรในภาษาอังกฤษ
โดย internTk21 พฤ 11 เม.ย. 2024 10:46 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
57
พฤ 11 เม.ย. 2024 10:46 pm โดย internTk21 View Topic Question Tag ใช้อย่างไรในภาษาอังกฤษ
มารู้จัก Clause in English กันเถอะ
โดย internTk21 พฤ 11 เม.ย. 2024 4:26 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
72
พฤ 11 เม.ย. 2024 4:26 pm โดย internTk21 View Topic มารู้จัก Clause in English กันเถอะ
เรียนรู้การเปลี่ยน single noun เป็น plural noun
โดย internTk21 พฤ 11 เม.ย. 2024 3:29 pm บอร์ด Microsoft Office Knowledge & line & Etc
0
55
พฤ 11 เม.ย. 2024 3:29 pm โดย internTk21 View Topic เรียนรู้การเปลี่ยน single noun เป็น plural noun
แจ้งปัญหา ติดบัคในการลงบทความในเว็บไซต์ Mindphp
โดย internTk21 พฤ 11 เม.ย. 2024 2:38 pm บอร์ด MindPHP News & Feedback
2
95
อ 14 เม.ย. 2024 11:03 am โดย mindphp View Topic แจ้งปัญหา ติดบัคในการลงบทความในเว็บไซต์ Mindphp