Python webdriver API(九)定位frame中的物件

weixin_34321977發表於2017-08-02

在web 應用中經常會出現frame 巢狀的應用,假設頁面上有A、B 兩個frame,其中B 在A 內,那麼定位B 中的內容則需要先到A,然後再到B。

switch_to.frame() 方法可以把當前定位的主體切換了frame 裡。怎麼理解這句話呢?我們可以從frame的實質去理解。frame 中實際上是嵌入了另一個頁面,而webdriver 每次只能在一個頁面識別,因此才需要用switch_to.frame() 方法去獲取frame 中嵌入的頁面,對那個頁面裡的元素進行定位。

1、處理frame時主要使用到switch_to.frame()(切入frame也可以些寫成switch_to_frame,不過這個已經用的很少了)和switch_to_default_content()兩個方法,一個主要是切入到iframe裡面,一個是切換到主文件中,一般情況這兩個要配合著用,切進去以後操作完成元素以後,就要在切回到主文件,避免一些其他的錯誤。

2、switch_to.frame()  #如果frame 中有name和id屬性就直接使用id或者name進行定位,如果沒有id和name屬性,可以通過find_element_by_xpath(或者其他定位)方法定位到這個iframe元素,然後把這個元素傳進去。

4618234-1b0108d5d8fe1d81.png

效果圖

4618234-92874f7b41b7e316.png


本文參考《selenium自動化實戰---蟲師》

http://www.cnblogs.com/mengyu/p/7160904.html

相關文章