Mengautomasikan Elemen Shadow DOM Dengan Mudah dengan Selenium
Apabila mengautomasikan halaman web yang menampilkan elemen DOM bayangan berbilang peringkat yang rumit, kaedah findElement tradisional Selenium mungkin jatuh pendek. Walau bagaimanapun, dengan kemunculan Selenium 4, penyelesaian terobosan telah muncul: WebElement.getShadowRoot().
Pertimbangkan halaman web dengan struktur DOM berikut:
<body> <div>
Untuk berinteraksi dengan elemen input dalam akar bayang, kini kita boleh menggunakan kod Selenium 4 berikut:
WebElement parentElement = driver.findElement(By.id("parent-element")); WebElement shadowRootElement = parentElement.getShadowRoot(); WebElement inputElement = shadowRootElement.findElement(By.cssSelector("#my-input"));
Pendekatan ini menghapuskan keperluan untuk kaedah JS Executor yang membosankan atau pemilih CSS dalam yang tidak boleh dipercayai. Selain itu, ia membolehkan skrip automasi yang lebih mudah dan boleh diselenggara.
Adalah penting untuk ambil perhatian bahawa dalam akar bayangan, pilihan pengesan adalah terhad. Sebagai contoh, dalam Chrome, By.cssSelector() dan By.className() ialah pilihan yang sah, manakala By.id() dan By.tagName() boleh menghasilkan InvalidArgumentException.
Dengan Selenium 4's WebElement. getShadowRoot(), mengautomasikan elemen DOM bayangan telah menjadi satu proses yang lancar, memperkasakan pembangun untuk menguji aplikasi web yang kompleks dengan mudah.
Atas ialah kandungan terperinci Bagaimanakah Selenium 4 Memudahkan Mengautomasikan Elemen DOM Bayangan?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!