在web 應(yīng)用中經(jīng)常會(huì)出現(xiàn)frame 嵌套的應(yīng)用,假設(shè)頁(yè)面上有A荞膘、B 兩個(gè)frame罚随,其中B 在A 內(nèi),那么定位B 中的內(nèi)容則需要先到A羽资,然后再到B淘菩。
switch_to.frame() 方法可以把當(dāng)前定位的主體切換了frame 里。怎么理解這句話呢?我們可以從frame的實(shí)質(zhì)去理解潮改。frame 中實(shí)際上是嵌入了另一個(gè)頁(yè)面狭郑,而webdriver 每次只能在一個(gè)頁(yè)面識(shí)別,因此才需要用switch_to.frame() 方法去獲取frame 中嵌入的頁(yè)面汇在,對(duì)那個(gè)頁(yè)面里的元素進(jìn)行定位翰萨。
1、處理frame時(shí)主要使用到switch_to.frame()(切入frame也可以些寫成switch_to_frame糕殉,不過這個(gè)已經(jīng)用的很少了)和switch_to_default_content()兩個(gè)方法亩鬼,一個(gè)主要是切入到iframe里面,一個(gè)是切換到主文檔中阿蝶,一般情況這兩個(gè)要配合著用雳锋,切進(jìn)去以后操作完成元素以后,就要在切回到主文檔赡磅,避免一些其他的錯(cuò)誤魄缚。
2、switch_to.frame()? #如果frame 中有name和id屬性就直接使用id或者name進(jìn)行定位焚廊,如果沒有id和name屬性冶匹,可以通過find_element_by_xpath(或者其他定位)方法定位到這個(gè)iframe元素,然后把這個(gè)元素傳進(jìn)去咆瘟。
效果圖
本文參考《selenium自動(dòng)化實(shí)戰(zhàn)---蟲師》
http://www.cnblogs.com/mengyu/p/7160904.html