seleuinm的frame切換 視窗切換

2021-10-09 02:59:10 字數 1303 閱讀 1612

一、iframe 或 frame切換

1.使用 webdriver 物件的 switch_to 屬性,像這樣

driver.switch_to.frame(frame_reference)

其中, frame_reference 可以是 frame 元素的屬性 name 或者 id 。

比如這裡,就可以填寫 iframe元素的id 『frame1』 或者 name屬性值 『innerframe』。

像這樣driver.switch_to.frame(『frame1』)

或者driver.switch_to.frame(『innerframe』)

2.也可以填寫frame 所對應的 webelement 物件。

我們可以根據frame的元素位置或者屬性特性,使用find系列的方法,選擇到該元素,得到對應的webelement物件

比如,這裡就可以寫

driver.switch_to.frame(wd.find_element_by_tag_name(「iframe」)) 用css也可以

3.切回外層方法,進行操作

driver.switch_to.default_content()

二、切換視窗

1.那麼我們就可以通過 類似下面的**,

for handle in wd.window_handles:

# 先切換到該視窗

wd.switch_to.window(handle)

# 得到該視窗的標題欄字串,判斷是不是我們要操作的那個視窗

if 『bing』 in wd.title:

# 如果是,那麼這時候webdriver物件就是對應的該該視窗,正好,跳出迴圈,

break

上面**的用意就是:

我們依次獲取 wd.window_handles 裡面的所有 控制代碼 物件, 並且呼叫 wd.switch_to.window(handle) 方法,切入到每個視窗,然後檢查裡面該視窗物件的屬性(可以是標題欄,位址列),判斷是不是我們要操作的那個視窗,如果是,就跳出迴圈。

2.切回原來視窗

因為我們一開始就在 原來的視窗裡面,我們知道 進入新視窗操作完後,還要回來,可以事先 儲存該老視窗的 控制代碼,使用如下方法

#(mainwindow變數儲存當前視窗的控制代碼)

mainwindow = driver.current_window_handle

切換到新視窗操作完後,就可以直接像下面這樣,將driver對應的物件返回到原來的視窗

#(通過前面儲存的老視窗的控制代碼,自己切換到老視窗)

driver.switch_to.window(mainwindow)

frame巢狀的學習

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

frame與bounds的區別

原來你m,frame.size和bounds.size不總是一樣的 在uiviewcontroller的 void willanimaterotationtointe ceorientation uiinte ceorientation tointe ceorientation duration n...

frame框架的優缺點

frameset使用方法示例 frameset id mframe rows 20 border 0px frame name hello src path oa frame top.jsp scrolling no noresize marginwidth 200px frame name hi ...