1.frame和iframe的區別:
frame是整個頁面的架構,iframe是內嵌的架構
Iframe標記又叫浮動幀標記,可以用它將一個HTML文檔嵌入在一個HTML中顯示。它和Frame標記的最大區別是在網頁中嵌入 的<Iframe></Iframe>所包含的內容與整個頁面是一個整體,而<Frame>< /Frame>所包含的內容是一個獨立的個體,是可以獨立顯示的。另外,應用Iframe還可以在同一個頁面中多次顯示同一內容,而不必重複這段內 容的代碼
2.使用id,name定位
#coding=utf-8from selenium import webdriverdriver = webdriver.Firefox()driver.get('http://mail.163.com')driver.switch_to.frame('x-URS-iframe')driver.find_element_by_id('auto-id-1513149691275').send_keys('18707718538')driver.find_element_by_id('auto-id-1513149691276').send_keys('111111')
注意:selenium自動聲稱的switch_to_frame被劃線,可以改為switch_to.frame
3.如果iframe沒有id或name怎麼定位。
這位元素的方法有八種,我們可以使用xpath或者tag定位
4.釋放iframe
當在iframe上操作完畢,想回到首頁上繼續操作,就必須先釋放iframe在操作
#coding=utf-8from selenium import webdriverdriver = webdriver.Firefox()driver.get('http://mail.163.com')driver.switch_to.frame('x-URS-iframe')driver.find_element_by_id('auto-id-1513149691275').send_keys('18707718538')driver.find_element_by_id('auto-id-1513149691276').send_keys('111111')#釋放iframedriver.switch_to_default.content()
5.如何確定頁面上元素是否在iframe架構中
1.定位到元素後,切換到firepath介面
2.看firebug工具左上方,如果顯示Top Window說明沒有iframe
3.如果顯示iframe#xxx這樣的,說明在iframe上,#後面就是它的id
4.也可以查看原始碼,看是否目標元素在iframe架構中