Saat kami menggunakan selenium untuk mensimulasikan login, setelah mendapatkan elemen tombol login, kami dapat secara langsung memanggil metode klik () untuk mencapai lompatan login, dan webdriver saat ini juga menunjuk ke
Ini baik -baik saja untuk halaman saat ini, tetapi harus dicatat bahwa karena kecepatan pemuatan halaman umumnya lebih rendah dari kecepatan berjalan program, sebelum mendapatkan elemen halaman setelah login, Anda dapat menggunakan metode util WebDriverWait, atau Anda dapat langsung menggunakan thread.sleep () untuk membiarkan program tidur untuk sementara waktu (tidak disarankan).
Tetapi poin utama dari blog ini adalah bahwa jika kami memasukkan halaman baru dengan mengklik hyperlink normal, maka kami tidak bisa mendapatkan elemen halaman baru melalui metode di atas, karena webdriver pada saat ini masih menunjuk ke halaman sebelumnya.
Solusi: Pertama, dapatkan semua pegangan jendela, dan kemudian beralih melalui koleksi pegangan ini sampai pegangan ada berbeda dari pegangan jendela saat ini (CurrentHandle), dan transfer webdriver sebelumnya ke halaman yang ditunjukkan oleh pegangan baru.
Kodenya adalah sebagai berikut:
String currentWindow = driver.getWindowHandle (); // Dapatkan pegangan dari jendela saat ini set <string> handles = driver.getWindowHandles (); // Dapatkan pegangan dari semua windows iterator <string> it = handles.iterator (); Webdriver newdriver = null; while (it.hasnext ()) {string handle = it.next (); if (! handle.equals (currentWindow)) {driver = driver.switchto (). window (handle); // Beralih ke break jendela yang diarahkan oleh pegangan baru; }}Solusi untuk kegagalan mendapatkan elemen halaman baru berdasarkan selenium adalah seluruh konten yang dibagikan oleh editor. Saya harap ini dapat memberi Anda referensi dan saya harap Anda dapat mendukung wulin.com lebih lanjut.