亚洲乱码中文字幕综合,中国熟女仑乱hd,亚洲精品乱拍国产一区二区三区,一本大道卡一卡二卡三乱码全集资源,又粗又黄又硬又爽的免费视频

selenium自動(dòng)化測(cè)試入門實(shí)戰(zhàn)

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

一、Selenium介紹

Selenium 是什么?一句話,自動(dòng)化測(cè)試工具。它支持各種瀏覽器,包括 Chrome,Safari,F(xiàn)irefox 等主流界面式瀏覽器,如果你在這些瀏覽器里面安裝一個(gè) Selenium 的插件,那么便可以方便地實(shí)現(xiàn)Web界面的測(cè)試。
Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDriver 曾經(jīng)是 Selenium 的競(jìng)爭(zhēng)對(duì)手)。也就是說(shuō) Selenium 2 是 Selenium 和 WebDriver 兩個(gè)項(xiàng)目的合并,即 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版本號(hào):

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\ ,同時(shí)把chrome的安裝目錄加入到path環(huán)境變量。

四、自動(dòng)測(cè)試實(shí)戰(zhàn):12306訂票

1.知識(shí)點(diǎn)

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

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

3.打開12306

#打開網(wǎng)址
driver.get('https://kyfw.12306.cn/otn')
#睡五秒自動(dòng)選擇驗(yàn)證碼
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ù)鏈接的文本來(lái)定位元素

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ā)日

這里寫圖片描述

這里寫圖片描述

選擇車次類型:

五、實(shí)驗(yàn)分析:

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

六、總結(jié)

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

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

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

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

time.sleep(5)

driver.find_element_by_link_text("賬號(hào)登錄").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")
#睡十五秒自動(dòng)選擇驗(yàn)證碼
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'無(wú)','--']:
      print ("nono")
      time.sleep(1)
    else:
      print("yes")
      # 購(gòu)票
      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自動(dòng)化測(cè)試入門實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)selenium自動(dòng)化測(cè)試內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論