ทดสอบ Uiautomator
| อัปเดตล่าสุด | รุ่นที่เสถียร | รุ่นที่อาจได้รับการเผยแพร่ | รุ่นเบต้า | รุ่นอัลฟ่า |
|---|---|---|---|---|
| 13 สิงหาคม 2025 | 2.3.0 | - | - | 2.4.0-alpha06 |
การประกาศทรัพยากร Dependency
หากต้องการเพิ่มการอ้างอิงในการทดสอบ คุณต้องเพิ่มที่เก็บ Maven ของ Google ลงในโปรเจ็กต์ อ่านข้อมูลเพิ่มเติมได้ที่ที่เก็บ Maven ของ Google
เพิ่มการอ้างอิงสำหรับอาร์ติแฟกต์ที่คุณต้องการในไฟล์ build.gradle สำหรับแอปหรือโมดูลของคุณ
ดึงดูด
dependencies { // Use to implement UIAutomator tests androidTestImplementation "androidx.test.uiautomator:uiautomator:2.4.0-alpha06" }
Kotlin
dependencies { // Use to implement UIAutomator tests androidTestImplementation("androidx.test.uiautomator:uiautomator:2.4.0-alpha06") }
ดูข้อมูลเพิ่มเติมเกี่ยวกับการพึ่งพาได้ที่เพิ่มการพึ่งพาบิลด์
ความคิดเห็น
ความคิดเห็นของคุณช่วยเราปรับปรุง Jetpack ให้ดียิ่งขึ้น โปรดแจ้งให้เราทราบหากพบปัญหาใหม่หรือมี ไอเดียในการปรับปรุงไลบรารีนี้ โปรดดูปัญหาที่มีอยู่ ในไลบรารีนี้ก่อนสร้างปัญหาใหม่ คุณสามารถโหวตปัญหาที่มีอยู่ได้โดย คลิกปุ่มดาว
ดูข้อมูลเพิ่มเติมได้ในเอกสารประกอบของเครื่องมือติดตามปัญหา
ทดสอบ Uiautomator Shell เวอร์ชัน 1.0
เวอร์ชัน 1.0.0-alpha02
13 สิงหาคม 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha02 มีการคอมมิตเหล่านี้
เวอร์ชัน 1.0.0-alpha01
18 มิถุนายน 2025
androidx.test.uiautomator:uiautomator-shell:1.0.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 1.0.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
ฟีเจอร์ใหม่
- ไลบรารีเชลล์ ui-automator เวอร์ชันอัลฟ่าแรกเพื่อเรียกใช้คำสั่งเชลล์ในฐานะผู้ใช้เชลล์ ไลบรารีนี้อนุญาตให้อ่าน stdout, stderr และเขียนใน stdin ของกระบวนการ sh ที่เปิดตัวโดยเชลล์ โดยจะย้อนกลับ
UiAutomation#executeShellCommandRweที่เปิดตัวใน API 34
เวอร์ชัน 2.4
เวอร์ชัน 2.4.0-alpha06
13 สิงหาคม 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha06 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha06 มีการคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- เพิ่ม API ที่อิงตามหน้าต่างเพื่อการทดสอบแบบหลายหน้าต่างที่ดียิ่งขึ้น กล่าวคือ ตอนนี้สามารถใช้
UiDevice#findWindowเพื่อค้นหาUiWindowที่เฉพาะเจาะจงตามByWindowSelectorที่สร้างด้วยเมธอดจากโรงงานBy.Window(I359c4, I40528, I8c963)
เวอร์ชัน 2.4.0-alpha05
18 มิถุนายน 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha05 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha05 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เพิ่ม
UiObject2#waitForStableเป็นทางลัดสำหรับUiObject2#accessibilityNodeInfo#waitForStable()แล้ว
เวอร์ชัน 2.4.0-alpha04
4 มิถุนายน 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha04 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
onViewเป็นonElementเพื่อให้ชัดเจนว่าใช้ได้กับ Compose (I53a3b, b/419006806)
การแก้ไขข้อบกพร่อง
- แก้ไข
waitForStableInActiveWindow(290457f1, b/420349130)
เวอร์ชัน 2.4.0-alpha03
20 พฤษภาคม 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha03 มีการเปลี่ยนแปลงเหล่านี้
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
waitForStableInActiveWindowแสดง NPE ในบางกรณี (Ibf50f, b/417046391)
เวอร์ชัน 2.4.0-alpha02
7 พฤษภาคม 2025
androidx.test.uiautomator:uiautomator:2.4.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha02 มีคอมมิตเหล่านี้
ฟีเจอร์ใหม่
- รูปร่างเริ่มต้นของ
UiautomatorApi ใหม่UiAutomatorTestScopeสร้างได้ผ่านโรงงานuiAutomatorซึ่งให้สิทธิ์เข้าถึง APIonViewใหม่ - กฎ Lint เริ่มต้นสำหรับคำเตือนเกี่ยวกับการใช้
AccessibilityNodeInfo#getTextและแนะนำให้ใช้textAsString
การเปลี่ยนแปลง API
- เพิ่ม
Configurator#setDefaultDisplayIdเพื่อตั้งรหัสการแสดงผลเพื่อจำกัดการค้นหาทั้งหมดเป็น (Icdf17) - เปลี่ยน
Searchable(อินเทอร์เฟซที่UiDeviceและUiObject2ใช้ร่วมกัน) เป็นแบบสาธารณะเพื่อความสะดวก (I67f18)
การแก้ไขข้อบกพร่อง
- แก้ไขการจัดการแป้น Meta ใน
UiDevice#pressKeyCodes(I73f80) - อัปเดต
UiDevice#getWindowRootsให้แสดงรูทตามลำดับ Z เสมอ (I87426) - แก้ไขปัญหาที่ท่าทางสัมผัสบางอย่างไม่สมบูรณ์ (I60dd3, If4edd)
- แก้ไขการวนซ้ำที่ไม่มีที่สิ้นสุดซึ่งเกิดขึ้นได้ยากเมื่อเรียกใช้
UiDevice#scrollUntil(I39989)
เวอร์ชัน 2.4.0-alpha01
26 มิถุนายน 2024
androidx.test.uiautomator:uiautomator:2.4.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.4.0-alpha01 มีการเปลี่ยนแปลงเหล่านี้
การเปลี่ยนแปลง API
- เลิกใช้งาน
Configurator#getKeyInjectionDelayและsetKeyInjectionDelayเนื่องจากตอนนี้ไม่ได้ใช้พารามิเตอร์แล้ว เพราะระบบจะแทรกข้อความโดยตรงเสมอแทนที่จะใช้การกดแป้น (I3bcc5)
การแก้ไขข้อบกพร่อง
- อัปเดตระยะเวลาระหว่าง
UiObject2เหตุการณ์การเคลื่อนไหวเพื่อรองรับอัตราการรีเฟรชแบบไดนามิก (เช่น Smooth Display) (I43f12) - ลดความไม่เสถียรจากการล้าสมัยของโหนดการช่วยเหลือพิเศษใน UI บางรายการโดยการล้างแคชการช่วยเหลือพิเศษเป็นระยะ (I3be25)
- แก้ไขปัญหา
StaleObjectExceptionที่เกิดขึ้นเมื่อโทรหาtoStringหรือhashCodeในUiObject2ที่ล้าสมัย (I38ea1) - ปรับปรุง
UiWatcherประสิทธิภาพด้วยการข้ามการเรียกwaitForIdleที่ไม่จำเป็น (I8c65e) - แก้ไขความไม่ถูกต้องของ Javadoc โดยเฉพาะอย่างยิ่งเพื่อชี้แจงเมื่อมีการใช้พารามิเตอร์
Configuratorแต่ละรายการ (Ie10b1, I71631)
เวอร์ชัน 2.3.0
เวอร์ชัน 2.3.0
21 กุมภาพันธ์ 2024
androidx.test.uiautomator:uiautomator:2.3.0 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.3.0 มีคอมมิตเหล่านี้
การเปลี่ยนแปลงที่สำคัญตั้งแต่เวอร์ชัน 2.2.0
- การรองรับหลายจอแสดงผล: เพิ่มการรองรับการค้นหาและการดำเนินการกับออบเจ็กต์ในจอแสดงผลหลายจอ และ
UiDeviceวิธีการจัดการจอแสดงผลรอง (Ie6544, I912cd) - ตัวเลือกใหม่
- เงื่อนไขที่กำหนดเอง: แสดง
Conditionอินเทอร์เฟซเพื่อรองรับเงื่อนไขการรอที่กำหนดเอง และเพิ่มเมธอดUiDevice#wait,UiObject2#waitและUiObject2#scrollUntilที่เกี่ยวข้อง (27c0ea, 099d6e) - การแก้ไขข้อบกพร่องและความน่าเชื่อถือ
- แก้ไขปัญหาที่การคำนวณขนาดการแสดงผลไม่ถูกต้องในบางครั้งและอาจละเว้นบางส่วนของหน้าจอ (Ifc016) คุณอาจต้องปรับพิกัดและออฟเซ็ตที่ใช้ในการทดสอบ
- อัปเดตการแทรก
MotionEventเพื่อปรับปรุงความแม่นยำ (678ca3) และจำลองท่าทางของผู้ใช้ได้ดียิ่งขึ้น (454450) - ปรับปรุงความน่าเชื่อถือของการเลื่อน (I7b059) การหมุน (c6cea0) การคลิกแบบยาว (49572b) การบีบนิ้ว (3c619a) และอื่นๆ
เวอร์ชัน 2.3.0-rc01
7 กุมภาพันธ์ 2024
androidx.test.uiautomator:uiautomator:2.3.0-rc01 จะได้รับการเผยแพร่โดยไม่มีการเปลี่ยนแปลง เวอร์ชัน 2.3.0-rc01 มีคอมมิตเหล่านี้
เวอร์ชัน 2.3.0-beta01
13 ธันวาคม 2023
androidx.test.uiautomator:uiautomator:2.3.0-beta01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.3.0-beta01 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปลี่ยนชื่อ
UiObject2วิธีการมาร์จิ้นตามเปอร์เซ็นต์เป็นsetGestureMarginPercentageและsetGestureMarginsPercentageเพื่อให้สอดคล้องกัน (I24435)
การแก้ไขข้อบกพร่อง
- ปรับปรุงข้อผิดพลาดที่เกิดขึ้นเมื่อไม่พบหรือเข้าถึงจอแสดงผลรองไม่ได้ (116b23)
เวอร์ชัน 2.3.0-alpha05
1 พฤศจิกายน 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha05 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.3.0-alpha05 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่ม
UiObject2#getDrawingOrderเพื่อแสดงข้อมูลลำดับการวาด (z-index) (I5dfa4) - เพิ่ม
UiDeviceเมธอดสำหรับรับ ตั้งค่า ตรึง และยกเลิกการตรึงการหมุนของจอแสดงผลรอง (I912cd)
การแก้ไขข้อบกพร่อง
- เพิ่มการลองอีกครั้งใน
UiObject2#scrollUntilเมื่อตรวจไม่พบจุดสิ้นสุดของการเลื่อน (Ibac6f) - แก้ไขปัญหาที่
UiDeviceจะใช้อินสแตนซ์Instrumentationที่ล้าสมัยหากมีการสร้างใหม่ (I18cae) - แก้ไข NPE ที่อาจเกิดขึ้นหากไม่สามารถกำหนดรหัสจอแสดงผลเมื่อทิ้งโหนด (Icafcb)
- เพิ่มคำเตือนเมื่อคลิก/เลื่อนออบเจ็กต์ที่คลิก/เลื่อนไม่ได้ (I4a5d9)
- ลด
UiObject2ความเร็วในการเลื่อนเริ่มต้นเพื่อปรับปรุงความน่าเชื่อถือ (I5e071)
เวอร์ชัน 2.3.0-alpha04
26 กรกฎาคม 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha04 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.3.0-alpha04 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- เพิ่ม
By.hasParentและBy.hasAncestorเพื่อรองรับการค้นหาออบเจ็กต์ตามออบเจ็กต์ระดับบนสุด (I93c36) - เพิ่ม
UiObject2#getHintเพื่อดึงข้อความคำแนะนำของออบเจ็กต์ และเมธอดBy.hintเพื่อเลือกออบเจ็กต์ตามข้อความคำแนะนำ (Idd345) - เพิ่ม
By.displayIdเพื่อรองรับการเลือกออบเจ็กต์ตามจอแสดงผลที่ออบเจ็กต์นั้นอยู่ (I1825b) - เพิ่มเมธอด
UiDevice#getDisplayHeight(int)และUiDevice#getDisplayWidth(int)เพื่อค้นหามิติข้อมูลของจอแสดงผลตามรหัส (Ie6544) - เพิ่มเมธอด
wait(SearchCondition, long)และwait(UiObject2Condition, long)อีกครั้งเพื่อความเข้ากันได้แบบย้อนหลัง (Iebfda) - เปลี่ยน
UiDevice#executeShellCommandเป็นสาธารณะ แต่แนะนำแทนที่จะซ่อน (Ic48a1)
การแก้ไขข้อบกพร่อง
- อัปเดตการแทรก
MotionEventเพื่อลดความไม่เสถียรโดยจัดลำดับความสำคัญของความแม่นยำของท่าทางสัมผัสเหนือความเร็ว (678ca3) - เพิ่มการติดตามไปยังเมธอดที่ใช้ทรัพยากรมากเพื่อระบุจุดคอขวดด้านประสิทธิภาพ (d17de3)
- เพิ่มกลไกการลองอีกครั้งเมื่อเริ่มการเชื่อมต่อ UiAutomation (048caf)
- แก้ไข NPE ที่อาจเกิดขึ้นจากโหนด Null ใน
UiDevice#dumpWindowHierarchy(b725eb) - แก้ไขข้อผิดพลาดที่ไม่คาดคิดจากการค้นหาหรือการดำเนินการในจอแสดงผลส่วนตัว (985db6, 7053d4)
เวอร์ชัน 2.3.0-alpha03
19 เมษายน 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha03 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.3.0-alpha03 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- เปิดเผยอินเทอร์เฟซ
Conditionเพื่ออนุญาตเงื่อนไขการรอที่กำหนดเองแทนที่จะอาศัยเฉพาะเงื่อนไขในตัวในUntilและอัปเดตเมธอดUiDevice#waitและUiObject2#waitเพื่อยอมรับอินเทอร์เฟซนี้ (27c0ea) - เพิ่ม
UiObject2#scrollUntilเพื่อรองรับการเลื่อนจนกว่าจะตรงตามเงื่อนไขและเพื่อให้เทียบเท่ากับUiScrollable(099d6e) - เพิ่ม
UiDevice#setOrientationPortraitและsetOrientationLandscapeเพื่ออำนวยความสะดวกในการหมุนเวียนในอุปกรณ์ประเภทต่างๆ (e13cb7) - เพิ่ม
UiObject2#setGestureMarginPercentเพื่อรองรับการตั้งค่าขอบที่สัมพันธ์กับขนาดออบเจ็กต์ (Ib8c77)
การแก้ไขข้อบกพร่อง
- แก้ไขเมธอด
UiScrollableที่บางครั้งใช้พิกัดที่ไม่ถูกต้องใน SDK 18 ถึง 22 (b53ece) - แก้ไขปัญหาที่
UiObject2#setTextและclearTextแก้ไขข้อความใน SDK 18 และ 19 ไม่ได้ (77e41d) - แก้ไขปัญหาที่
UiWatcherไม่ได้ดำเนินการตามลำดับที่ถูกต้อง (c85f92) - แก้ไขปัญหาที่การหมุนอุปกรณ์อาจยังไม่เสร็จสมบูรณ์หลังจากเปลี่ยนการวางแนว
UiDevice(c6cea0) - ปรับปรุงความน่าเชื่อถือของการคลิกค้าง การลาก และการบีบนิ้ว (49572b, 3c619a)
เวอร์ชัน 2.3.0-alpha02
11 มกราคม 2023
androidx.test.uiautomator:uiautomator:2.3.0-alpha02 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.3.0-alpha02 มีคอมมิตเหล่านี้
การเปลี่ยนแปลง API
- ปรับปรุงการบันทึกในไลบรารีทั้งหมดเพื่อให้ข้อมูลเพิ่มเติม เตือนเกี่ยวกับปัญหาที่อาจเกิดขึ้น และปรับปรุงความสอดคล้องกัน
- เพิ่ม
UiDevice#pressKeyCodesเพื่อรองรับการกดหลายปุ่มพร้อมกัน เช่น กดปุ่มเปิด/ปิดและปุ่มลดเสียงเพื่อถ่ายภาพหน้าจอ (22e525) - เพิ่ม
UiDevice#setCompressedLayoutHierarchyและเลิกใช้งานUiDevice#setCompressedLayoutHeirarchyเพื่อแก้ไขการสะกดชื่อเมธอดผิด (4e2f65) - ทำเครื่องหมาย
UiAutomatorInstrumentationTestRunnerว่าเลิกใช้งานแล้วเนื่องจากจัดการUiAutomatorTestCaseที่เลิกใช้งานแล้วและไม่จำเป็นอีกต่อไป (be6c85) - อัปเดตความล่าช้าระหว่าง
UiObject2MotionEventเป็น 2 เท่าของอัตราการรีเฟรชของจอแสดงผลเพื่อจำลองท่าทางของผู้ใช้ได้ดียิ่งขึ้น (454450) - เพิ่มการรองรับข้อความหลายบรรทัดและการจับคู่คำอธิบาย (1625e6, b/255787130)
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่
StaleObjectExceptions อาจเกิดขึ้นขณะค้นหาหรือรอออบเจ็กต์ (4cbcc0) - แก้ไขค่าที่ส่งคืนของ
UiScrollable#scrollToBeginning,scrollToEnd,flingToBeginningและflingToEndที่ไม่ได้ระบุว่าถึงจุดเริ่มต้น/สิ้นสุดหรือไม่ (d33e06) - แก้ไขวิธีการ
UiScrollable#scrollForwardและscrollBackwardที่ไม่สนใจการหมดเวลาที่กำหนดค่าไว้ (29e4f3) - แก้ไข
BySelectorตัวสร้างสำเนาที่ไม่จัดการเครื่องมือเลือกความลึก (6c7b91) - แก้ไขการจัดการค่าเปอร์เซ็นต์ที่ไม่ถูกต้องใน
UiObject#pinchInและpinchOut(01b973) - แก้ไขปัญหาที่พบได้ยากซึ่งการรองรับหลายหน้าต่างจะหายไปหากมีการรีเซ็ตการเชื่อมต่อ
UiAutomationพื้นฐาน (1bb956)
เวอร์ชัน 2.3.0-alpha01
7 กันยายน 2022
androidx.test.uiautomator:uiautomator:2.3.0-alpha01 ได้รับการเผยแพร่แล้ว เวอร์ชัน 2.3.0-alpha01 มีคอมมิตต่อไปนี้
การเปลี่ยนแปลง API
- ใส่คำอธิบายประกอบเกี่ยวกับค่า Null ของเมธอดสาธารณะทั้งหมด
- เปลี่ยนการแทรก
MotionEventเป็นแบบอะซิงโครนัสโดยมีการหน่วงเวลาสั้นๆ เพื่อให้UiObject2ท่าทางสัมผัสราบรื่นยิ่งขึ้น - ลดช่วงเวลาการสำรวจขณะรอจาก 1,000 มิลลิวินาทีเป็น 100 มิลลิวินาที
- อัปเดต
UiDevice#wakeUpและUiDevice#sleepให้ใช้KEYCODE_WAKEUPและKEYCODE_SLEEPเพื่อรองรับอุปกรณ์ที่ลบล้างปุ่มเปิด/ปิด - เพิ่ม
UiObject2#getDisplayIdและรองรับการค้นหาและจัดการออบเจ็กต์ในจอแสดงผลหลายจอ - เพิ่มเมธอด
UiObject#clickและUiObject2#clickAndWaitสำหรับคลิกจุดโดยใช้พิกัดของจุด
การแก้ไขข้อบกพร่อง
- แก้ไขปัญหาที่การคำนวณขนาดการแสดงผลไม่ถูกต้องในบางครั้งและอาจละเว้นบางส่วนของหน้าจอ โดยเฉพาะในโหมดหลายหน้าต่าง (Ifc016c)
- แก้ไขการปรับขนาดภาพหน้าจอใน
UiDevice#takeScreenshot(Id80ad6) - ปรับปรุงความน่าเชื่อถือของ
Until.scrollFinishedและUiObject2#scroll(I7b0595) - แก้ไข
IncorrectContextUseViolationคำเตือนโหมดเข้มงวด (Iffa6a0)