最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

一、Selenium介紹

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

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)境變量。

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

1.知識點(diǎn)

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

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

3.打開12306

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

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

六、總結(jié)

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

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

Selenium腳本的執(zhí)行速度受多方面因素的影響,如網(wǎng)速,操作步驟的繁瑣程度,頁面加載的速度,以及我們在腳本中設(shè)置的等待時(shí)間,運(yùn)行腳本的線程數(shù)等。所以不能單方面追求運(yùn)行速度的,要確保穩(wěn)定性,能穩(wěn)定地實(shí)現(xiàn)回歸測試才是關(guān)鍵。
Selenium保證元素成功率是通過元素的定位,當(dāng)然它的定位方法很多,一定能有合適的。但是在自動化工程的實(shí)施過程中,高質(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è)置全局操作時(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")
#睡十五秒自動選擇驗(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'無','--']:
      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自動化測試入門實(shí)戰(zhàn)的文章就介紹到這了,更多相關(guān)selenium自動化測試內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • 基于Python實(shí)現(xiàn)迪杰斯特拉和弗洛伊德算法

    基于Python實(shí)現(xiàn)迪杰斯特拉和弗洛伊德算法

    這篇文章主要為大家詳細(xì)介紹了基于Python實(shí)現(xiàn)迪杰斯特拉和弗洛伊德算法,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2019-01-01
  • 全網(wǎng)最細(xì) Python 格式化輸出用法講解(推薦)

    全網(wǎng)最細(xì) Python 格式化輸出用法講解(推薦)

    這篇文章主要介紹了全網(wǎng)最細(xì) Python 格式化輸出用法講解,本文給大家介紹的非常詳細(xì),對大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2021-01-01
  • python format 格式化輸出方法

    python format 格式化輸出方法

    今天小編就為大家分享一篇python format 格式化輸出方法,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-07-07
  • Python中__name__的使用實(shí)例

    Python中__name__的使用實(shí)例

    這篇文章主要介紹了Python中__name__的使用實(shí)例,并總結(jié)了兩種情況下__name__的值會是什么,需要的朋友可以參考下
    2015-04-04
  • python自動化工具日志查詢分析腳本代碼實(shí)現(xiàn)

    python自動化工具日志查詢分析腳本代碼實(shí)現(xiàn)

    這篇文章主要介紹了python日志查詢分析腳本代碼的實(shí)現(xiàn),分為受控節(jié)點(diǎn)和主控節(jié)點(diǎn),大家參考使用吧
    2013-11-11
  • 解決pytorch報(bào)錯(cuò):AssertionError: Invalid device id的問題

    解決pytorch報(bào)錯(cuò):AssertionError: Invalid device id的問題

    今天小編就為大家分享一篇解決pytorch報(bào)錯(cuò):AssertionError: Invalid device id的問題,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-01-01
  • python中numpy.empty()函數(shù)實(shí)例講解

    python中numpy.empty()函數(shù)實(shí)例講解

    在本篇文章里小編給大家分享的是一篇關(guān)于python中numpy.empty()函數(shù)實(shí)例講解內(nèi)容,對此有興趣的朋友們可以學(xué)習(xí)下。
    2021-02-02
  • python 中如何獲取列表的索引

    python 中如何獲取列表的索引

    這篇文章主要介紹了python 中如何獲取列表的索引,在文中給大家提到了python 返回列表中某個(gè)值的索引,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-07-07
  • python 如何讀取列表中字典的value值

    python 如何讀取列表中字典的value值

    這篇文章主要介紹了python 如何讀取列表中字典的value值,具有很好的參考價(jià)值,希望對大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2022-02-02
  • 基于pandas中expand的作用詳解

    基于pandas中expand的作用詳解

    今天小編就為大家分享一篇基于pandas中expand的作用詳解,具有很好的參考價(jià)值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2019-12-12

最新評論

阳原县| 宝山区| 尼勒克县| 乌兰察布市| 淮阳县| 柯坪县| 全南县| 宁南县| 平塘县| 荔波县| 信阳市| 乌拉特后旗| 和田县| 城口县| 新乡市| 麻城市| 互助| 涪陵区| 湟源县| 安西县| 武清区| 灵川县| 土默特右旗| 乐清市| 榆中县| 怀宁县| 甘肃省| 大丰市| 九龙县| 巴彦县| 广宗县| 遂平县| 庆城县| 安徽省| 隆安县| 波密县| 许昌县| 扎鲁特旗| 宜州市| 阿瓦提县| 绥中县|