python selenium iframe怎么定位_python+selenium 切换iframe
轉(zhuǎn)載自
http://www.cnblogs.com/yoyoketang/p/6128619.html
前言
有很多小伙伴在拿163作為登錄案例的時(shí)候,發(fā)現(xiàn)不管怎么定位都無(wú)法定位到,到底是什么鬼呢,本篇詳細(xì)介紹iframe相關(guān)的切換
以http://mail.163.com/登錄頁(yè)面10為案例,詳細(xì)介紹switch_to_frame使用方法.
一、frame和iframe區(qū)別
Frame與Iframe兩者可以實(shí)現(xiàn)的功能基本相同,不過(guò)Iframe比Frame具有更多的靈活性。?frame是整個(gè)頁(yè)面的框架,iframe是內(nèi)嵌的網(wǎng)頁(yè)元素,也可以說(shuō)是內(nèi)嵌的框架
Iframe標(biāo)記又叫浮動(dòng)幀標(biāo)記,可以用它將一個(gè)HTML文檔嵌入在一個(gè)HTML中顯示。它和Frame標(biāo)記的最大區(qū)別是在網(wǎng)頁(yè)中嵌入 的所包含的內(nèi)容與整個(gè)頁(yè)面是一個(gè)整體,而< /Frame>所包含的內(nèi)容是一個(gè)獨(dú)立的個(gè)體,是可以獨(dú)立顯示的。另外,應(yīng)用Iframe還可以在同一個(gè)頁(yè)面中多次顯示同一內(nèi)容,而不必重復(fù)這段內(nèi) 容的代碼。
二、163登錄界面
2.用firebug定位登錄框
3.鼠標(biāo)停留在左下角(定位到iframe位置)時(shí),右上角整個(gè)登錄框顯示灰色,說(shuō)明iframe區(qū)域是整個(gè)登錄框區(qū)域
4.左下角箭頭位置顯示iframe屬性
三、切換iframe
1.由于登錄按鈕是在iframe上,所以第一步需要把定位器切換到iframe上
2.用switch_to_frame方法切換,此處有id屬性,可以直接用id定位切換
四、如果iframe沒(méi)有id怎么辦?
1.這里iframe的切換是默認(rèn)支持id和name的方法的,當(dāng)然實(shí)際情況中會(huì)遇到?jīng)]有id屬性和name屬性為空的情況,這時(shí)候就需要先定位iframe
2.定位元素還是之前的八種方法同樣適用,這里我可以通過(guò)tag先定位到,也能達(dá)到同樣效果
QQ交流群:232607095
(版權(quán)所有:"yoyoketang"微信公眾號(hào))
五、釋放iframe
1.當(dāng)iframe上的操作完后,想重新回到主頁(yè)面上操作元素,這時(shí)候,就可以用switch_to_default_content()方法返回到主頁(yè)面
六、如何判斷元素是否在iframe上?
1.定位到元素后,切換到firepath界面
2.看firebug工具左上角,如果顯示Top Window說(shuō)明沒(méi)有iframe
3.如果顯示iframe#xxx這樣的,說(shuō)明在iframe上,#后面就是它的id
?
七、如何解決switch_to_frame上的橫線呢?
1.先找到官放的文檔介紹
2.官方已經(jīng)不推薦上面的寫(xiě)法了,用這個(gè)寫(xiě)法就好了driver.switch_to.frame()
八、參考代碼如下
# coding:utf-8
from selenium import webdriver
driver = webdriver.Firefox()
driver.get("http://mail.163.com/")
driver.implicitly_wait(30)
# 切換iframe
# iframe = driver.find_element_by_tag_name("iframe")
# driver.switch_to_frame(iframe)
# driver.switch_to_frame("x-URS-iframe")
driver.switch_to.frame("x-URS-iframe")
driver.find_element_by_name("email").send_keys("123")
driver.find_element_by_name("password").send_keys("456")
# 釋放iframe,重新回到主頁(yè)面上
driver.switch_to.default_content()
創(chuàng)作挑戰(zhàn)賽新人創(chuàng)作獎(jiǎng)勵(lì)來(lái)咯,堅(jiān)持創(chuàng)作打卡瓜分現(xiàn)金大獎(jiǎng)總結(jié)
以上是生活随笔為你收集整理的python selenium iframe怎么定位_python+selenium 切换iframe的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: python绘制3d坐标轴_matplo
- 下一篇: python生成json_如何将Pyth