Selenium memerlukan pemilihan bingkai yang jelas sebelum berinteraksi dengan elemen di dalamnya. Walau bagaimanapun, sesetengah senario memberikan cabaran apabila elemen berada dalam iframe bersarang dalam atau kehadirannya adalah dinamik. Artikel ini meneroka kaedah alternatif dan amalan terbaik untuk mengendalikan situasi sedemikian.
Pendekatan tradisional melibatkan penukaran kepada bingkai tertentu menggunakan nama, ID atau indeksnya. Kaedah ini memberikan kawalan yang tepat ke atas pemilihan bingkai, seperti yang dilihat dalam contoh berikut:
# By frame name driver.switch_to.frame("iframe_name") # By frame ID driver.switch_to.frame("iframe_id") # By frame index (0-based) driver.switch_to.frame(0)
WebDriverWait menawarkan cara yang cekap untuk mencari dan bertukar kepada bingkai secara dinamik. Ia menggunakan keadaan frame_to_be_available_and_switch_to_it seperti berikut:
# By frame ID WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.ID, "id_of_iframe"))) # By frame Xpath WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.XPATH, "xpath_of_iframe")))
Dalam senario dengan berbilang bingkai bersarang, anda boleh menggunakan pendekatan rekursif:
Atas ialah kandungan terperinci Bagaimana untuk Memilih Elemen Merentasi Bingkai dengan Cekap dalam Selenium?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!