python自動化測試(三)

python自動化測試(三)

多層框架或窗口的定位

1铜异、switch_to_frame

有時候我們定位一個元素,定位器沒有問題秸架,但一直定位不了揍庄,這時候就要檢查這個元素是否在一個frame中,seelnium webdriver 提供了一個switch_to_frame方法东抹,可以很輕松的來解決這個問題蚂子。

# inner.html
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title></title>
    </head>
    <body>
        <div id="inner_div">
            <input type="text" name="name" id="name" value="" />
            <button type="button" id="btn">按鈕</button>
        </div>
<script type="text/javascript">
            document.getElementById("btn").onclick = function(){
                var name = document.getElementById("name").value;
                window.alert(name);
            }
        </script>
    </body>
</html>

# outter.html
<!DOCTYPE html>
<html>
    <head>
        <meta charset="utf-8">
        <title>定位iframe</title>
    </head>
    <body>
        <div class="header" style="width: 100%;height: 100px;border: 1px solid red;"></div>
        <div class="center" style="overflow: auto;">
            <div class="left" style="height: 500px;width: 19%; border: 1px solid blue;float: left;"></div>
            <iframe src="inner.html" width="60%" height="500px" style="float:left;margin-left: 10px;"></iframe>
            <div class="right" style="height: 500px;width: 19%; border: 1px solid green;float: right;"></div>
        </div>
        <div class="footer" style="width: 100%;height: 100px;border: 1px solid red;"></div>
    </body>
</html>

定位如下沃测、

# 只有導入 webdriver 包我們才能使用 webdriver API 進行自動化腳本的開發(fā)
# 將控制的 webdriver 的 Firefox 賦值給 browser;
driver = webdriver.Firefox()
# 打開本地頁面
driver.get("http://127.0.0.1:8848/kk/outter.html")
# 只能等待 在一個時間范圍內(nèi)智能的等待
driver.implicitly_wait(5)
driver.switch_to_frame("inner")
driver.find_element_by_id("name").send_keys("python自動化測試")
driver.find_element_by_id("btn").click()
time.sleep(3)
driver.quit()

2食茎、switch_to_window

有個需求蒂破、

1. 打開百度首頁,點擊登錄按鈕别渔,點擊立即注冊按鈕附迷,打開新的窗口

2. 跳轉(zhuǎn)到注冊窗口,在注冊窗口進行操作

3. 跳回到百度首頁钠糊,點擊登錄彈出框的關(guān)閉按鈕挟秤,在百度首頁進行操作

第一步 打開百度、點擊登陸抄伍、點擊注冊艘刚、

# coding=utf-8

from selenium import webdriver
import time

# 只有導入 webdriver 包我們才能使用 webdriver API 進行自動化腳本的開發(fā)
# 將控制的 webdriver 的 Firefox 賦值給 browser;
driver = webdriver.Firefox()
driver.maximize_window()
# 打開百度 點擊登陸 點擊注冊
driver.get("http://www.baidu.com")
# 獲得當前窗口
current_window = driver.current_window_handle
# 點擊登陸 link定位
time.sleep(2)
driver.find_element_by_xpath('//*[@id="s-top-loginbtn"]').click()
# 點擊注冊
time.sleep(2)
driver.find_element_by_link_text('立即注冊').click()

然后在不同的頁面 進行不同的操作

# coding=utf-8

from selenium import webdriver
import time

# 只有導入 webdriver 包我們才能使用 webdriver API 進行自動化腳本的開發(fā)
# 將控制的 webdriver 的 Firefox 賦值給 browser截珍;
driver = webdriver.Firefox()
driver.maximize_window()
# 打開百度 點擊登陸 點擊注冊
driver.get("http://www.baidu.com")
# 獲得當前窗口
current_window = driver.current_window_handle
# 點擊登陸 link定位
time.sleep(2)
driver.find_element_by_xpath('//*[@id="s-top-loginbtn"]').click()
# 點擊注冊
time.sleep(2)
driver.find_element_by_link_text('立即注冊').click()
# 獲得所有窗口
all_windows = driver.window_handles
# 循環(huán)判斷 不同的窗口執(zhí)行不同的操作
for window in all_windows:
    if window != current_window: #不是百度主頁 注冊頁面
        driver.switch_to.window(window)  # 跳轉(zhuǎn)到注冊窗口
        driver.find_element_by_id('TANGRAM__PSP_4__userName').send_keys('TOM')
        driver.find_element_by_id('TANGRAM__PSP_4__phone').send_keys('15188888888')
        driver.find_element_by_id('TANGRAM__PSP_4__password').send_keys('123456')
        time.sleep(3)
    if window == current_window:
        driver.switch_to.window(window)  # 跳轉(zhuǎn)到百度首頁窗口
        driver.find_element_by_id('kw').send_keys('python自動化')
        driver.find_element_by_id('su').click()
        time.sleep(3)
driver.quit()
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末攀甚,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子岗喉,更是在濱河造成了極大的恐慌秋度,老刑警劉巖,帶你破解...
    沈念sama閱讀 221,331評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件钱床,死亡現(xiàn)場離奇詭異荚斯,居然都是意外死亡,警方通過查閱死者的電腦和手機查牌,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,372評論 3 398
  • 文/潘曉璐 我一進店門事期,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人纸颜,你說我怎么就攤上這事兽泣。” “怎么了胁孙?”我有些...
    開封第一講書人閱讀 167,755評論 0 360
  • 文/不壞的土叔 我叫張陵唠倦,是天一觀的道長。 經(jīng)常有香客問我涮较,道長稠鼻,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,528評論 1 296
  • 正文 為了忘掉前任狂票,我火速辦了婚禮枷餐,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己毛肋,他們只是感情好怨咪,可當我...
    茶點故事閱讀 68,526評論 6 397
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著润匙,像睡著了一般诗眨。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上孕讳,一...
    開封第一講書人閱讀 52,166評論 1 308
  • 那天匠楚,我揣著相機與錄音,去河邊找鬼厂财。 笑死芋簿,一個胖子當著我的面吹牛,可吹牛的內(nèi)容都是我干的璃饱。 我是一名探鬼主播与斤,決...
    沈念sama閱讀 40,768評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼荚恶!你這毒婦竟也來了撩穿?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,664評論 0 276
  • 序言:老撾萬榮一對情侶失蹤谒撼,失蹤者是張志新(化名)和其女友劉穎食寡,沒想到半個月后,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體廓潜,經(jīng)...
    沈念sama閱讀 46,205評論 1 319
  • 正文 獨居荒郊野嶺守林人離奇死亡抵皱,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,290評論 3 340
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發(fā)現(xiàn)自己被綠了辩蛋。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片呻畸。...
    茶點故事閱讀 40,435評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖堪澎,靈堂內(nèi)的尸體忽然破棺而出擂错,到底是詐尸還是另有隱情味滞,我是刑警寧澤樱蛤,帶...
    沈念sama閱讀 36,126評論 5 349
  • 正文 年R本政府宣布,位于F島的核電站剑鞍,受9級特大地震影響昨凡,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜蚁署,卻給世界環(huán)境...
    茶點故事閱讀 41,804評論 3 333
  • 文/蒙蒙 一便脊、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧光戈,春花似錦哪痰、人聲如沸遂赠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,276評論 0 23
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽跷睦。三九已至,卻和暖如春肋演,著一層夾襖步出監(jiān)牢的瞬間抑诸,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,393評論 1 272
  • 我被黑心中介騙來泰國打工爹殊, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留蜕乡,地道東北人。 一個月前我還...
    沈念sama閱讀 48,818評論 3 376
  • 正文 我出身青樓梗夸,卻偏偏與公主長得像层玲,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子绒瘦,可洞房花燭夜當晚...
    茶點故事閱讀 45,442評論 2 359

推薦閱讀更多精彩內(nèi)容