Chrome Automated on PC & Mobile

Ekawat Pat.
Arcadia Software Development
3 min readSep 26, 2019

หากว่า เราจะทำการทดสอบโดยใช้ Robot Framework เปิด Browser Chrome ทั้ง pc และ mobile ในการทดสอบบน Windows โดยที่เราต้องการใช้ Selenium ในการเปิดบน pc และ ใช้ Appium ในการเปิดบน mobile แต่ทว่า code ที่เราใช้ทดสอบนั้นต่างกันเลยทั้งที่การทดสอบเหมือนกัน

ตัวอย่างการเปิด Chrome บน Android

จะเห็นว่าการเข้า url : http://google.com วิธีเข้าจะต่างกันมาก ซึ่งทำให้มันยุ่งยาก เพราะว่า เราต้องใช้ locator ของ android ในการระบุ แต่ว่าจริงๆแล้ว Appium นั้นยังมีวิธี Switch To Context แต่เราจะมาอธิบายเพิ่มหลังจากนี้

แล้วเราควรใช้อะไรดีละ ?

Create Web Driver นั่นเอง!!!

Create Web Driver จะคล้ายกับคำสั่ง Open Browser แต่ตัว Create Web Driver นั้นสามารถส่งค่า arguments ไปยัง Web Driver instance ที่สร้างขึ้นมาได้ และต้องกำหนด driver_name เป็นชื่อการใช้ Web Driver มาถึงตรงนี้แล้ว หากงงมาดูตัวอย่าง Script กันเลยดีกว่า

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

เราจะทำการเปิด google chrome เข้าเว็บ http://google.com ค้นหาคำว่า exoplayer kotlin android github จากนั้นเข้า link ที่สอง โดยจะเปิดทั้ง Windows และ Android

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

จะเห็นได้ว่า test case ทั้งสองนั้น code เดียวกันหมดเลย ต่างกันแค่ตอน Create Web Driver แค่นั่นเอง ซึ่งตรงส่วนนี้ จะมีความแตกต่างกันตรงที่ว่าของ mobile จะมีการกำหนด capabilities เพื่อระบุว่าเปิดผ่าน androidPackage

capabilities = {
'chromeOptions': {
'androidPackage': 'com.android.chrome',
}
}

ในส่วนของการสร้าง hub ของ Selenium command_executor=http://192.168.230.1:4444/wd/hub การสามารถดูเพิ่มได้จาก link นี้ได้เลย :)

เพิ่มเติม

Appium ยังมีอีกวิธีคือการทำ Switch To Context จะทำการสลับ context อย่างเช่น Application Chrome จะมี context ที่เป็น Native กับ WebView เราสามารถสลับ context ไปมาได้ ซึ่งวิธีนี้จะต่างกับวิธีที่ใช้ locator ของ android แต่วิธีที่สลับ context ไปยัง web view จะสามารถใช้ locator ของ web ได้เลย

Switch Context Native_App -> WEBVIEW_chrome

จากในรูปจะเป็นการสลับ context จาก Native_App เป็น WEBVIEW_chrome ทำให้สามารถใช้งาน XPath ในรูปแบบของ Web ได้เลย

เปรียบเทียบKeywords ของ PC & Mobile

สรุป

การใช้งาน Create Web Driver ช่วยทำให้สามารถทดสอบการใช้ Chrome ได้ทั้งสองแพลตฟอร์มไม่ว่าจะเป็นทางฝั่ง Windows หรือ Android ทำให้สามารถ reuse code ได้ ลดการทำงานซ้ำซ้อนเกินความจำเป็นออกไป

ดังนั้นอย่าลืมนำไปใช้งานกันนะครับผม ครั้งหน้าบทความต่อไปจะเป็นอะไร ก็อย่าลืมติดตามรับชมกันได้ครับผม

ตัวอย่าง code ทั้งสามอยู่ที่ Github เข้าไปดูกันได้นะครับ

Reference Website :

--

--