欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

selenium自動化測試入門實戰(zhàn)

 更新時間:2020年12月21日 09:39:24   作者:Shannonnnn  
這篇文章主要介紹了selenium自動化測試入門實戰(zhàn),文中通過示例代碼介紹的非常詳細(xì),對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧

一、Selenium介紹

Selenium 是什么?一句話,自動化測試工具。它支持各種瀏覽器,包括 Chrome,Safari,F(xiàn)irefox 等主流界面式瀏覽器,如果你在這些瀏覽器里面安裝一個 Selenium 的插件,那么便可以方便地實現(xiàn)Web界面的測試。
Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDriver 曾經(jīng)是 Selenium 的競爭對手)。也就是說 Selenium 2 是 Selenium 和 WebDriver 兩個項目的合并,即 Selenium 2 兼容 Selenium,它既支持 Selenium API 也支持 WebDriver API。

中文文檔:http://selenium-python-zh.readthedocs.io/en/latest/index.html

英文文檔:http://selenium-python.readthedocs.io/index.html

二、python、pycharm安裝

Python官網(wǎng)下載鏈接:
https://www.python.org/downloads/windows/
pycharm官網(wǎng)下載鏈接:https://www.jetbrains.com/pycharm/download/#section=windows

三、selenium安裝

1)pip install selenium

安裝Chrome driver

https://chromedriver.storage.googleapis.com/index.html?path=2.29/

Chrome瀏覽器和Chromedriver版本號:

chromedriver版本 支持的Chrome版本
v2.43 v69-71
v2.42 v68-70
v2.41 v67-69
v2.40 v66-68
v2.39 v66-68
v2.38 v65-67
v2.37 v64-66
v2.36 v63-65
v2.35 v62-64
v2.34 v61-63
v2.33 v60-62
v2.32 v59-61
v2.31 v58-60
v2.30 v58-60
v2.29 v56-58
v2.28 v55-57
v2.27 v54-56
v2.26 v53-55
v2.25 v53-55
v2.24 v52-54
v2.23 v51-53
v2.22 v49-52
v2.21 v46-50
v2.20 v43-48
v2.19 v43-47
v2.18 v43-46
v2.17 v42-43
v2.13 v42-45
v2.15 v40-43
v2.14 v39-42
v2.13 v38-41
v2.12 v36-40
v2.11 v36-40
v2.10 v33-36
v2.9 v31-34
v2.8 v30-33
v2.7 v30-33
v2.6 v29-32
v2.5 v29-32
v2.4 v29-32

2)把chromedriver.exe拷貝到到chrome的安裝目錄下…\Google\Chrome\Application\ ,同時把chrome的安裝目錄加入到path環(huán)境變量。

四、自動測試實戰(zhàn):12306訂票

1.知識點(diǎn)

Selenium定位web元素的方法
瀏覽器調(diào)試工具使用

2.步驟
1) 人工走一遍流程,對自動化的流程心中有數(shù)
2) 按步驟拆分,然后對每一個小步驟編寫自動化腳本
3) 將所有步驟合起來,多次運(yùn)行,測試腳本

3.打開12306

#打開網(wǎng)址
driver.get('https://kyfw.12306.cn/otn')
#睡五秒自動選擇驗證碼
time.sleep(5)

4.登錄12306
1)在chrome界面,按F12快捷鍵,彈出chrome的調(diào)試工具
2)找出登錄按鈕的id和username、password的id
根據(jù)id定位元素

driver.find_element_by_id("username").click()
driver.find_element_by_id("username").send_keys("522268397@qq.com")
driver.find_element_by_id("password").send_keys("***")
print("continue")
time.sleep(15)

根據(jù)鏈接的文本來定位元素

driver.find_element_by_link_text("車票預(yù)訂").click()
time.sleep(5)

在這里插入圖片描述

選擇出發(fā)地

這里寫圖片描述

利用js代碼凍結(jié)瀏覽器界面。

setTimeout(function(){debugger;}, 5000)
#出發(fā)地選擇
driver.find_element_by_id("fromStationText").click()
# setTimeout(function(){debugger;}, 5000)
driver.find_element_by_css_selector(u"[title=廣州]").click()

time.sleep(5)

這里寫圖片描述

右擊代碼位置,選擇copy selector

這里寫圖片描述

這里寫圖片描述

這里寫圖片描述

選擇出發(fā)日

這里寫圖片描述

這里寫圖片描述

選擇車次類型:

五、實驗分析:

1、不會破解12306的變態(tài)驗證碼。沒有自動破解驗證碼,所以留五秒鐘自己手動選驗證碼。
2、因為是學(xué)生認(rèn)證所以多一步需要確認(rèn)(不是學(xué)生可去掉)
3、訂票成功

六、總結(jié)

自動化測試的優(yōu)點(diǎn)是能夠很快、很廣泛地查找缺陷,同時可以做很多重復(fù)性的工作,在回歸測試階段,我們可以利用自動化功能測試工具進(jìn)行,而無須大量的軟件測試人員手動的再次執(zhí)行測試用例,極大的提高了工作效率。

自動化測試的缺點(diǎn)也很明顯,它們只能檢查一些比較主要的問題,如崩潰、死機(jī),但是卻無法發(fā)現(xiàn)一些一般的日常錯誤,這些錯誤通過人眼很容易找到,但機(jī)器卻往往找不到。另外,在自動測試中編寫測試腳本工作量也很大,有時候該工作量甚至超過了手動測試的時間。

Selenium腳本的執(zhí)行速度受多方面因素的影響,如網(wǎng)速,操作步驟的繁瑣程度,頁面加載的速度,以及我們在腳本中設(shè)置的等待時間,運(yùn)行腳本的線程數(shù)等。所以不能單方面追求運(yùn)行速度的,要確保穩(wěn)定性,能穩(wěn)定地實現(xiàn)回歸測試才是關(guān)鍵。
Selenium保證元素成功率是通過元素的定位,當(dāng)然它的定位方法很多,一定能有合適的。但是在自動化工程的實施過程中,高質(zhì)量的自動化測試不是只有測試人員保證的。需要開發(fā)人員規(guī)范開發(fā)習(xí)慣,如給頁面元素加上唯一的name,id等,這樣就能大大地提高元素定位的準(zhǔn)確性。

附代碼:

#-*-coding:utf8-*-
import time
from selenium import webdriver

#運(yùn)行chrome,打開瀏覽器
driver =webdriver.Chrome()
#設(shè)置瀏覽器窗口
driver.set_window_size(1080,800)

#設(shè)置全局操作時間
driver.implicitly_wait(10)

#打開網(wǎng)址
driver.get('https://kyfw.12306.cn/otn')

time.sleep(5)

driver.find_element_by_link_text("賬號登錄").click()
driver.find_element_by_id("J-userName").click()
driver.find_element_by_id("J-userName").send_keys("522268397@qq.com")
driver.find_element_by_id("J-password").send_keys("***")
print("continue")
#睡十五秒自動選擇驗證碼
time.sleep(15)

driver.find_element_by_link_text("車票預(yù)訂").click()
time.sleep(5)
#出發(fā)地選擇
driver.find_element_by_id("fromStationText").click()
# setTimeout(function(){debugger;}, 5000)
driver.find_element_by_css_selector(u"[title=廣州]").click()

time.sleep(5)
#目的地選擇
driver.find_element_by_id("toStationText").click()
driver.find_element_by_css_selector(u"[title=北京]").click()
time.sleep(5)

#出發(fā)日期選擇
driver.find_element_by_id("train_date").click()
driver.find_element_by_css_selector("body > div.cal-wrap > div:nth-child(1) > div.cal-cm > div:nth-child(24) > div").click()
time.sleep(5)

#車型選擇
driver.find_element_by_css_selector("#_ul_station_train_code > li:nth-child(1) > label").click()
time.sleep(5)

while True:
  try:
    driver.find_element_by_id("query_ticket").click()
    e=driver.find_element_by_id("SWZ_6i00000G720F")
    e.click()
    if e.text in [u'無','--']:
      print ("nono")
      time.sleep(1)
    else:
      print("yes")
      # 購票
      driver.find_element_by_link_text("預(yù)訂").click()
      # 乘車人選擇
      driver.find_element_by_css_selector("#normal_passenger_id > li:nth-child(1) > label").click()
      # 學(xué)生票確認(rèn)(不是學(xué)生可去掉)
      driver.find_element_by_link_text("確認(rèn)").click()
      # 提交訂單
      driver.find_element_by_link_text("提交訂單").click()
      driver.find_element_by_link_text("確認(rèn)").click()
  except:
    pass

到此這篇關(guān)于selenium自動化測試入門實戰(zhàn)的文章就介紹到這了,更多相關(guān)selenium自動化測試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評論