Pertanyaan Bagaimana cara memeriksa sel terlihat dalam tampilan tabel dengan Pengujian Xcode 7 UI?


Saya memiliki tampilan tabel dengan banyak sel dan tidak semua sel terlihat di layar. Ketika saya memeriksanya

table.cells.staticTexts.matchingIdentifier("My Cell").element.exists

Ini mengembalikan true tetapi sel tidak terlihat di layar dan saya tidak dapat mengetuknya. Karena setiap kali saya mengetuknya, tes gagal.

Bagaimana cara memeriksa apakah suatu elemen terlihat di layar? Atau bagaimana cara mengetuk elemen yang tidak terlihat?


6
2017-09-03 10:27


asal


Jawaban:


Menggunakan hittable properti, bukan exists.

Itu referensi kelas untuk XCUIElement menjelaskan bahwa hittable properti hanya akan kembali true jika elemennya bisa disentuh.

table.cells.staticTexts.matchingIdentifier("My Cell").element.hittable

5
2018-02-16 11:04



Alih-alih menggunakan element.exists coba gunakan element.hittable. Ini berhasil bagi saya, ada hasil yang benar jika elemen tersebut saat ini dalam hierarki tampilan meskipun berada di luar tampilan layar. hittable mengembalikan nilai true hanya jika elemen ada di layar dan dapat dipalsukan.


0
2018-02-09 00:19



Metode tableview cellForRowAtIndexPath (TIDAK metode delegasi dengan nama yang sama) akan mengembalikan sel di beberapa jalur indeks jika saat ini sedang ditampilkan, atau nil jika tidak ditampilkan.

Jika pengguna mengklik tombol (atau jika ada yang terjadi dengan tampilan apa pun di sel Anda), Anda juga dapat naik hierarki tampilan untuk pertama-tama menemukan sel, lalu tampilan tabel, dan metode indexPathForCell akan memberi Anda jalur indeks sel.


0
2018-02-16 11:11



Anda dapat menggunakan metode swipeUp untuk menggulir ke bawah hingga sel tertentu akan terlihat. Anda juga dapat memeriksa apakah sel itu ada atau tidak. sesuatu seperti ini.

XCUIElementQuery *tableQuery = app.tables;
 if (!tablesQuery.cells.staticText[@"some text"].exist){
  [tablesQuery.staticTexts[@"visible cell text"] swipeUp];
}

0
2018-04-20 14:25