Android

ไบนารีสําหรับ ChromeDriver เวอร์ชันล่าสุดจะจัดแพ็กเกจเป็นไฟล์ ZIP สําหรับแพลตฟอร์มโฮสต์ต่างๆ

คุณดู ChromeDriver เวอร์ชันเก่าได้ในดาวน์โหลด

แอปที่รองรับ

ChromeDriver รองรับการทดสอบในเบราว์เซอร์ Chrome (เวอร์ชัน 30 ขึ้นไป) และแอปที่ใช้ WebView ตั้งแต่ Android 4.4 (KitKat) ที่เปิดใช้การแก้ไขข้อบกพร่องเว็บและ JavaScript

คุณติดตั้งแอป Chrome ได้จากแหล่งต่อไปนี้

เวอร์ชันเสถียร: https://play.google.com/store/apps/details?id=com.android.chrome

การเชื่อมโยงภาษา Selenium WebDriver

คุณต้องติดตั้งการเชื่อมโยงภาษา WebDriver ของโปรเจ็กต์ Selenium มาตรฐานสำหรับภาษาที่ต้องการใช้เขียนการทดสอบ ไลบรารีนี้พร้อมใช้งานในเครื่องมือจัดการแพ็กเกจในเครื่องหรือโปรเจ็กต์ Selenium

เช่น คุณสามารถติดตั้งการเชื่อมโยงภาษาสำหรับ Python ด้วย pip

$ pip install selenium

Android SDK

คุณสามารถดาวน์โหลด SDK ได้จาก developer.android.com/sdk/

ข้อกำหนดของอุปกรณ์

ตั้งแต่ Chrome เวอร์ชัน 33 เป็นต้นไป คุณไม่จำเป็นต้องรูทอุปกรณ์ หากทำการทดสอบใน Chrome เวอร์ชันเก่า อุปกรณ์จะต้องมีการรูทเนื่องจาก ChromeDriver ต้องใช้สิทธิ์การเขียนในไดเรกทอรี /data/local เพื่อตั้งค่าอาร์กิวเมนต์บรรทัดคำสั่งของ Chrome

เรียกใช้ ChromeDriver

  1. เริ่มเซิร์ฟเวอร์ Android Debug Bridge (adb) ของ Android SDK โดยทำดังนี้

    $ adb start-server
    
  2. หากทดสอบในแอป Chrome ก่อนเวอร์ชัน 33 ให้ตรวจสอบว่า adb shell มีสิทธิ์อ่านและเขียนไดเรกทอรี /data/local ในอุปกรณ์ โดยทำดังนี้

    $ adb shell su -c chmod 777 /data/local
    
  3. เราขอแนะนำให้คุณเริ่ม ChromeDriver ผ่านไลบรารี Selenium แต่คุณก็เริ่มจากบรรทัดคำสั่งด้วยตนเองได้เช่นกัน

    $ ./chromedriver
    

ตัวเลือกสำหรับ Android เท่านั้น

ตัวเลือก Chrome ต่อไปนี้ใช้ได้กับทั้งแอป Chrome และ WebView

  • androidPackage: ชื่อแพ็กเกจของแอป Chrome หรือ WebView
  • androidDeviceSerial: (ไม่บังคับ) หมายเลขซีเรียลของอุปกรณ์ที่จะเปิดแอป (ดูส่วนอุปกรณ์หลายเครื่องด้านล่าง)
  • androidUseRunningApp: (ไม่บังคับ) แนบกับแอปที่ทำงานอยู่แทนการเปิดแอปด้วยไดเรกทอรีข้อมูลที่ล้างแล้ว

ความสามารถต่อไปนี้ใช้ได้กับแอป WebView เท่านั้น

  • androidActivity: ชื่อของกิจกรรมที่โฮสต์ WebView
  • androidProcess: (ไม่บังคับ) ชื่อกระบวนการของกิจกรรมที่โฮสต์ WebView (ตามที่ ps ระบุ) หากไม่ได้ระบุ ระบบจะถือว่าชื่อกระบวนการเหมือนกับ androidPackage

ทำการทดสอบ

การทดสอบควรส่งชื่อแพ็กเกจของแอปไปยัง ChromeDriver ผ่านตัวเลือก androidPackage ตัวอย่างเช่น การทดสอบ Python แบบมินิมอลจะมีลักษณะดังนี้

from selenium import webdriver
options = webdriver.ChromeOptions()
options.add_experimental_option('androidPackage', 'com.android.chrome')
driver = webdriver.Chrome('./chromedriver', options=options)
driver.get('https://google.com')
driver.quit()

อุปกรณ์หลายเครื่อง

หากต้องการใช้อุปกรณ์หนึ่งๆ สำหรับเซสชัน ให้ระบุ androidDeviceSerial เป็นตัวเลือก Chrome

หากไม่ได้ระบุหมายเลขซีเรียล เซิร์ฟเวอร์จะสุ่มเลือกอุปกรณ์ที่ไม่ได้ใช้เพื่อเชื่อมโยงกับแต่ละเซสชัน ระบบจะแสดงข้อผิดพลาดหากอุปกรณ์ทั้งหมดมีเซสชันที่ใช้งานอยู่ ดังนั้นการทดสอบควรเรียกใช้การออกเมื่อเสร็จสิ้น

เชื่อมต่อกับ wd/hub

หากการทดสอบคาดว่าจะเชื่อมต่อกับ wd/hub คุณสามารถเพิ่ม --url-base=wd/hub เมื่อเปิดเซิร์ฟเวอร์ได้ ดังนี้

$ ./chromedriver --url-base=wd/hub