การอ้างอิง
คุณสามารถดูไบนารีสำหรับ ChromeDriver เป็นแพ็กเกจในรูปแบบไฟล์ ZIP สำหรับโฮสต์ต่างๆ แพลตฟอร์มในหน้าดาวน์โหลด
แอปที่รองรับ
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 (https://www.seleniumhq.org/download/) ตัวอย่างเช่น การเชื่อมโยงภาษาสำหรับ Python สามารถติดตั้งด้วย PIP
$ pip install selenium
Android SDK
SDK สามารถดาวน์โหลดได้จาก developer.android.com/sdk/
ข้อกำหนดของอุปกรณ์
ตั้งแต่ Chrome เวอร์ชัน 33 เป็นต้นไป คุณไม่จำเป็นต้องใช้อุปกรณ์ที่รูทอีกต่อไป หากกำลังทดสอบ
ใน Chrome เวอร์ชันต่ำกว่า อุปกรณ์จะต้องรูทเป็น ChromeDriver
ต้องใช้สิทธิ์การเขียนไดเรกทอรี /data/local
เพื่อตั้งค่าคำสั่งของ Chrome
อาร์กิวเมนต์บรรทัด
เรียกใช้ ChromeDriver
เริ่มต้นเซิร์ฟเวอร์ Android Debug Bridge (adb) ของ Android SDK โดยใช้คำสั่งต่อไปนี้
$ adb start-server
หากทดสอบในแอป Chrome เวอร์ชันก่อน 33 ให้ตรวจสอบว่า adb shell มีสิทธิ์เข้าถึงแบบอ่าน/เขียนในไดเรกทอรี /data/local ในอุปกรณ์ ดังนี้
$ adb shell su -c chmod 777 /data/local
โดยทั่วไป ขอแนะนำให้คุณเริ่มใช้งาน ChromeDriver ผ่านไลบรารี Selenium แต่คุณสามารถเริ่มด้วยตนเองจากบรรทัดคำสั่งก็ได้ โปรดดูที่ เริ่มต้นใช้งาน สำหรับข้อมูลเพิ่มเติม
$ ./chromedriver
ตัวเลือกสำหรับ Android โดยเฉพาะ
ตัวเลือก Chrome ต่อไปนี้ใช้ได้กับทั้งแอป Chrome และ WebView
androidPackage
: ชื่อแพ็กเกจของแอป Chrome หรือ WebViewandroidDeviceSerial
: (ไม่บังคับ) หมายเลขซีเรียลของอุปกรณ์ที่จะใช้เปิดแอป (ดูส่วน "อุปกรณ์หลายเครื่อง" ด้านล่าง)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