使用Selenium 選擇嵌套iFrame 中的HTML 元素
在Selenium 中,與元素的交互需要切換到各自的iFrame,因為預設焦點位於最上面的視窗。然而,循環遍歷框架層次結構並識別元素的位置可能具有挑戰性。
框架切換技術
要存取iframe 中的元素,需要使用特定的切換方法:
-
按框架名稱:使用名稱屬性:
driver.switch_to.frame("iframe_name")
登入後複製
-
按幀ID: 使用id 屬性:
driver.switch_to.frame("iframe_id")
登入後複製
-
driver.switch_to.frame(0)
登入後複製
WebDriverWait(driver, 10).until(EC.frame_to_be_available_and_switch_to_it((By.NAME, "iframe_name")))
登入後複製
依影格索引:
使用幀的數字index:
切換到巢狀 iFrame但是,在導航多層嵌套 iFrame 時,這些方法可能很麻煩。為了簡化這個過程,Selenium 透過 WebDriverWait 提供了frame_to_be_available_and_switch_to_it條件。 例如,使用其名稱切換到iframe:注意:互動後對於該元素,可以使用default_content()或parent_frame()傳回主框架。 動態 iFrame在 iFrame 動態載入的情況下,使用明確等待可確保元素在與其互動之前變得可用。這種方法對於框架集和巢狀 iFrame 場景中的元素特別有用。 參考文獻[iframe 下處理#document 的方法](https://stackoverflow.com/questions) /16443415/iframe 下處理文件的方式)
以上是Selenium 如何有效率地選擇嵌套 iFrame 中的 HTML 元素?的詳細內容。更多資訊請關注PHP中文網其他相關文章!