日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程语言 > python >内容正文

python

python selenium iframe怎么定位_python+selenium 切换iframe

發(fā)布時(shí)間:2024/7/23 python 32 豆豆
生活随笔 收集整理的這篇文章主要介紹了 python selenium iframe怎么定位_python+selenium 切换iframe 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

轉(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)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。