python+selenium的自動化測試學習
selenium結合python學習 一定要注意版本,版本不符合可能無法開啟 檢視selenium版本 cmd,,python,,import selenium,,help(selenium),,使用enter換行,selenium版本2.53 get方法,開啟頁面,refresh重新整理頁面,time模組,time.sleep()等待時間, 檢視頁面元素,find_element_by_id,send_keys()方法用於輸入文字 selenium中有18種元素定位方法,但是通過元素或xpath和css定位更加靈活,需要掌握其中一種 id定位:find_element_by_id() name定位:find_element_by_name class定位:find_element_by_class_name tag定位:find_element_by_tag_name link定位:find_element_by_link_text partial_link定位:find_element_by_partial_link_text xpath定位:find_element_by_xpath css定位:find_element_by_css_selector
彈框 有3種類型: alert(提醒,確認要這樣操作嗎?), <input id = "alert" value = "alert" type = "button" onclick = "alert('您關注了yoyoketang嗎?');"/> confirm(是?否?),<input id = "confirm" value = "confirm" type = "button" onclick = "confirm('確定關注微信公眾號:yoyoketang?');"/> prompt(輸入然後確認,也可以取消) <input id = "prompt" value = "prompt" type = "button" onclick = "var name = prompt('請輸入微信公眾號:','yoyoketang'); document.write(name) "/>
都是用switch_to_alert方法切換(聚焦)到彈出框上 對alert彈框和coonfirm彈框的操作無非就是:獲取文字text,確認accept()相當於點選確認按鈕,關閉dismiss()相當於點選右上角的"x",輸入(僅限於prompt)send_keys() 對prompt彈框還可以輸入,send_keys()
# coding:utf-8 from selenium import webdriver import time url = "file:///C:/Users/wwx155675/Desktop/testalert.html"
driver = webdriver.Firefox() driver.get(url) driver.maximize_window() time.sleep(4) driver.find_element_by_id("alert").click() time.sleep(3) t = driver.switch_to_alert() print t.text t.accept()
針對這段程式碼需要注意的地方是: 首先# coding:utf-8 是必須要有的,說明了編碼的形式,不然識別不了 其次,url的書寫方式是有特點的,路徑中的是"/",直接複製的windows路徑是"\",要轉換過來,開頭是這個file:/// maximize_window()是有必要的,有時候瀏覽器預設按上次開啟方式顯示,導致視窗是小窗,有的東西顯示不出來,導致頁面校驗錯誤
有一些頁面也有彈窗,但不是所有彈窗都叫alert,alert彈出框介面比較簡潔,靠這一點可以區分
<html> <head> <title>Alert</title> </head> <body> <input id = "alert" value = "alert" type = "button" onclick = "alert('您關注了yoyoketang嗎?');"/> <input id = "confirm" value = "confirm" type = "button" onclick = "confirm('確定關注微信公眾號:yoyoketang?');"/> <input id = "prompt" value = "prompt" type = "button" onclick = "var name = prompt('請輸入微信公眾號:','yoyoketang'); document.write(name) "/> </body> </html>