frame表單巢狀的定位

2022-08-03 00:48:12 字數 2405 閱讀 7472

1

frame表單巢狀的定位:

2frame標籤有frameset、frame、iframe三種,frameset跟其他普通標籤沒有區別,不會影響到正常的定位,而frame與iframe對selenium定位而言是一樣的,selenium有一組方法對frame進行操作。

31.怎麼切到frame中( switch_to.frame() )

4selenium提供了switch_to.frame()方法來切換frame

5switch_to.frame(reference) #reference是傳入的引數,用來定位frame,可以傳入id、name、index以及selenium的webelement物件67

有如下html** index.html:

8<

html

lang

="en"

>

9<

head

>

<

title

>frametest

title

>

head

>

10<

body

>

<

iframe

src="a.html"

id="frame1"

name

="myframe"

>

iframe

>

11body

>

12html

>

13想要定位其中的iframe並切進去,可以通過如下**:

14from selenium import webdriver

15driver = webdriver.chrome()

16driver.switch_to.frame(0) # 1.用frame的index來定位,第乙個是0

17# driver.switch_to.frame("frame1") # 2.用id來定位

18# driver.switch_to.frame("myframe") # 3.用name來定位

19# driver.switch_to.frame(driver.find_element_by_tag_name("iframe"))

20# 4.用webelement物件來定位

2122

通常採用id和name就能夠解決絕大多數問題。但有時候frame並無這兩項屬性,則可以用index和webelement來定位:

23index從0開始,傳入整型引數即判定為用index定位,傳入str引數則判定為用id/name定位

24webelement物件,即用find_element系列方法所取得的物件,我們可以用tag_name、xpath等來定位frame物件

25 比如:<

iframe

src="myframetest.html"

/>

26用xpath定位,傳入webelement物件:

27driver.switch_to.frame(driver.find_element_by_xpath("//iframe[contains(@src,'myframe')]"))

2829

2.從frame中切回主文件(switch_to.default_content())

30切到frame中之後,我們便不能繼續操作主文件的元素,這時如果想操作主文件內容,則需切回主文件。

31driver.switch_to.default_content()

3233

3.巢狀frame的操作( switch_to.parent_frame() )

34有時候我們會遇到巢狀的frame,如下:

35<

html

>

<

iframe

id="frame1"

>

36<

iframe

id="frame2"

/ >

37<

iframe

id="frame3"

/ >

38iframe

>

39html

>

401.從主文件切到frame2,一層層切進去

41driver.switch_to.frame("frame1")

42driver.switch_to.frame("frame2")

432.從frame2再切回frame1,這裡selenium給我們提供了乙個方法能夠從子frame切回到父frame,而不用我們切回主文件再切進來。

44driver.switch_to.parent_frame() # 如果當前已是主文件,則無效果

45 有了parent_frame()這個相當於後退的方法,我們可以隨意切換不同的frame,隨意的跳來跳去了。

selenium 巢狀frame定位

網頁原始碼 案例1 iframe有id name屬性 網頁上有3個frame header menu main,分別 頂部 左側 右側 其中menu main在另外乙個frameset中 如何定位到 header 框架 driver.switch to frame header 如何定位到 main...

frame巢狀的學習

iframe巢狀的學習 具體 window.onload function 這是ifram裡面的iframe的js訪問父節點的父節點的內容。今天了解到 frame框架 ie window.top.frameid或者window.top.framename來訪問這個window物件 mf 只能這樣wi...

frame表單切換 多視窗切換

說明 在webdriver類庫中封裝了html頁面中使用frame表單框架技術定位的方法 方法 1 driver.switch to.frame myframe1 切換表單方法 myframe1 為frame表單的name或id 2 driver.switch to.default content ...