python selenium自动化面试_18年selenium3+python3+unittest自动化测试教程(上)
第一章 自動化測試課程介紹和課程大綱
1、自動化測試課程介紹
簡介:講解什么是自動化測試和課程大綱講解,課程需要的基礎和學后的水平
python3.7+selenium3
pycharm
第二章自動化測試相關軟件安裝
1、自動測試工具selenium介紹
簡介:介紹selenium自動化測試工具
為什么用selenium工具 1 -> 2 -> 3
1、主流,各大公司都有用,開源免費社區活躍
2、支持主流瀏覽器 火狐FireFox、谷歌chrome、IE(不建議)
3、支持多個語言,如python、java,js、php等
4、跨平臺:mac、windows、linux等? 64位系統
2、自動化測試環境搭建之python3安裝
簡介:使用windwos安裝python3
1、python3安裝
1)官方文檔安裝 下載解壓包
https://www.python.org/downloads/windows/
2)python環境變量安裝
3)pip工具介紹
包管理工具
3、自動化測試環境搭建之selenium3安裝
簡介:使用安裝包安裝selenium3
方法1:cmd環境下,用pip install selenium
方法2:下載selenium安裝包手動安裝 (推薦)
下載地址:https://pypi.org/project/selenium/
在解壓好的目錄下進行安裝? python setup.py install
4、自動化測試工具selenium驗證安裝
簡介:講解自動化測試工具selenium安裝準確性
下載火狐瀏覽器
1、使用selenium打開firefox瀏覽器
需要下載對應的驅動
火狐:https://github.com/mozilla/geckodriver/releases
下載driver、拷貝到瀏覽器安裝路徑、配置環境變量
配置環境變量,需要重啟cmd窗口
from selenium import webdriver
driver = webdriver.Firefox()
5、前端知識講解和工具安裝使用
簡介:講解前端基礎知識和推薦安裝的工具
sublime? / cmder? /? ?chrome瀏覽器? /? firefox瀏覽器
必須要了解的前端基礎知識:
html: 網頁基礎,用于顯示數據
js: 網頁腳本,控制頁面的數據
css: 用于控制文件樣式
xml: 用來傳輸和存儲數據
json: 用來傳輸和存儲數據
http: 網絡請求協議
xpath:
第三章 測試核心理論知識-(工作面試必備)
1、必備知識之軟件開發生命周期
簡介:講解軟件開發的生命周期
1、測試人員需要全程參與
需求調研-》需求分析評審-》軟件架構設計-》編碼-》單元測試-》集成測試-》系統測試-》預發布系統測試-》上線
測試人員要求開發人員寫單元測試
把控時間點、風險點
接口文檔不完善(更新了需求功能,不及時更新接口文檔)
2、測試相關知識分類講解
簡介: 測試分類講解
黑盒測試(功能測試):功能符合用戶的需求:
白盒測試:知道里面的邏輯,驗證符合用戶的需求
冒煙測試:主功能、主路徑測試
自動化測試: 人工測試轉為工具自動執行(沒有誰取代誰,有些場景適合自動化測試,有些場景適合手工測試)
性能測試:模擬多種峰值和負載去測試各項性能指標 jmeter、loadrunner
3、自動化測試和手工測試優缺點
簡介:介紹什么時候需要用到自動化測試和什么時候用手工測試
1、自動化測試方便,自動驗證功能是否有問題
2、更好的利用自有,節約人力成本
3、覆蓋更全,增加軟件的穩定性
場景:
軟件需求變更少,項目周期長,穩定性要強,環境要隔離獨立(開發一套環境、測試一套環境)
如果整個系統需求變更多,只能抽取部分功能做自動化測試
語言選擇:
python? java? ?ruby? php
打造自己的唯一性
第四章 自動測試selenium精講實戰
1、selenium基礎實戰之定位網頁元素技巧上集
簡介:講解使用selenium定位網頁元素,
find_element_by_id,find_element_by_name,find_element_by_class_name
1、開啟瀏覽器
browser = webdriver.Firefox();
2、打開網頁
browser.get("http://baidu.com")
使用python判斷是否正確
browser.title 或者 browser.current_url
3、定位元素的8種方法,(!!!!一定要唯一)
id: find_element_by_id() 采用id屬性進行定位
name: find_element_by_name() 定位方式和id定位相似,id、name和class一般在網頁都至少會有其中的一種
class name: find_element_by_class_name() 定位方式和id定位相似,id、name和class一般在網頁都至少會有其中的一種
4、定位到元素后的方法
clear() //清空
send_keys() // 輸入
back()? //后退頁面
maximize_window() // 最大化窗口
click()? ?//點擊事件,點擊按鈕,超鏈接
submit() //提交表單
5、定位到元素后的屬性
tag_name? //標簽名
text? //文本內容
2、selenium基礎實戰之定位網頁元素技巧下集
簡介:講解使用selenium定位網頁元素,
1、tag name:find_element_by_tag_name() 通過標簽名去定位,用的少,如find_element_by_tag_name("div")
2、link text: find_element_by_link_text() 超鏈接內容定位,元素內容
如? xxx ,則find_element_by_link_text("xxx")
from time import sleep
sleep(5)
3、partial link text:find_element_by_partial_link_text() 超鏈接內容定位,模糊匹配,和上面類似
比較難下面的兩種,下節課講解
xpath:
css selector
3、selenium實戰定位網頁元素之CSS定位
簡介:講解使用css定位網頁元素
1、css selector:find_element_by_css_selector()
根據CSS屬性定位,一般class是用.標記,id是用#標記,定位方式也會比xpath快
如 find_element_by_css_selector('input[id=\'search\']')? ?// 規則:? 元素[屬性=值]
技巧:通過firebug的拷貝css路徑
路徑:審查元素-》右鍵-》復制-》css選擇器
4、selenium實戰定位網頁元素之xpath定位
簡介:講解使用xpath定位網頁元素
1、xpath語法:http://www.w3school.com.cn/xpath/xpath_syntax.asp
注意 :? ”//“ 是全部的意思,即全文掃描,? ”/“ 的相鄰的意思, *是所有元素, ”..“是元素的父節點, "."是當前節點
2、xpath :find_element_by_xpath()xpath是XML路徑語言,通過元素的路徑來完成對元素的查找,HTML就是XML的一種實現方式,在FriePath插件里copy對應的xpath地址
絕對路徑定位:從標簽開始依次往下進行查找
相對路徑:利用元素屬性來進行xpath定位
技巧:通過firebug的拷貝css路徑
8種選擇器注意問題:如果定位元素報錯,原因如下
1、根據定位取不到
2、多個元素根據下標超出范圍,沒有0,從1開始
解決辦法:換其他方式定位元素
第五章 selenium實戰之模擬事件處理
1、自動化測試實戰之ActionChains模擬用戶行為
簡介:講解使用selenium里面的ActionChains模擬用戶的行為
需求:
需要模擬鼠標操作才能進行的情況,比如單擊、雙擊、點擊鼠標右鍵、拖拽
解決:selenium提供了一個類來處理這類事件
selenium.webdriver.common.action_chains.ActionChains(driver)
腳本:
from selenium.webdriver.common.action_chains import ActionChains
執行原理:
調用ActionChains的方法時不會立即執行,會將所有的操作按順序存放在一個隊列里,當調用perform()方法時,隊列中的事件會依次執行
支持鏈式寫法或者分步寫法
ActionChains(driver).click(ele).perform()
鼠標和鍵盤方法列表:
perform() 執行鏈中的所有動作
click(on_element=None) 單擊鼠標左鍵
context_click(on_element=None) 點擊鼠標右鍵
double_click(on_element=None) 雙擊鼠標左鍵
move_to_element(to_element) 鼠標移動到某個元素
ele.send_keys(keys_to_send) 發送某個詞到當前焦點的元素
========== 不常用 ==========
click_and_hold(on_element=None) 點擊鼠標左鍵,不松開
release(on_element=None) 在某個元素位置松開鼠標左鍵
key_down(value, element=None) 按下某個鍵盤上的鍵
key_up(value, element=None) 松開某個鍵
drag_and_drop(source, target) 拖拽到某個元素然后松開
drag_and_drop_by_offset(source, xoffset, yoffset) 拖拽到某個坐標然后松開
move_by_offset(xoffset, yoffset) 鼠標從當前位置移動到某個坐標
move_to_element_with_offset(to_element, xoffset, yoffset) 移動到距某個元素(左上角坐標)多少距離的位置
send_keys_to_element(element, keys_to_send) 發送某個鍵到指定元素
2、鼠標事件實戰之hover菜單欄彈出
簡介:鼠標事件之菜單欄hover彈出
1、
#引入 ActionChains 類
from selenium.webdriver.common.action_chains import ActionChains
2、move_to_element(to_element) 鼠標移動到某個元素
#對定位到的元素執行鼠標移動到上面的操作
ActionChains(driver).move_to_element(ele1).perform()
3、多知識點綜合實戰之模擬用戶登錄
簡介:講解使用selenium模擬登錄小D課堂,并選擇課程
1、多知識點實戰
2、查找登錄框-》輸入用戶名和密碼-》觸發登錄-》判斷登錄是否成功-》打印結果
4、自動化測試實戰之網頁等待時間
簡介:講解自動化測試的等待時間
1、為什么需要等待時間--》等系統穩定
網頁需要加載對應的資源文件,頁面渲染,窗口處理等等
2、自動化測試常用的等待時間
強制等待 : (自己調試代碼看效果)
from time import sleep
sleep(5)? # 強制等待5秒再執行下一步,缺點是不管資源是不是完成,都必須等待
隱性等待:
driver.implicitly_wait(10)? # 隱性等待,最長等10秒
#設置了一個最長等待時間,如果在規定時間內網頁加載完成,則執行下一步,否則一直等到時間截止,然后執行下一步,弊端就是程序會一直等待整個頁面加載完成,到瀏覽器標簽欄那個加載圈不再轉
注意:對driver起作用,所以只要設置一次即可,沒有必要到處設置
顯性等待:
WebDriverWait 需要配合 until和until_not,程序每隔N秒檢查一次,如果成功,則執行下一步,否則繼續等待,直到超過設置的最長時間
from selenium.webdriver.support.wait import WebDriverWait
語法:WebDriverWait(driver, timeout, poll_frequency=0.5, ignored_exceptions=None)
from selenium.webdriver.common.by import By
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC
結論: 隱性等待和顯性等待可以同時用,等待的最長時間取兩者之中的較大者
總結
以上是生活随笔為你收集整理的python selenium自动化面试_18年selenium3+python3+unittest自动化测试教程(上)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: python福利彩随机_看大神如何用Py
- 下一篇: websocket python爬虫_p