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

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

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

一、Selenium介紹

Selenium 是什么?一句話,自動化測試工具。它支持各種瀏覽器,包括 Chrome,Safari,F(xiàn)irefox 等主流界面式瀏覽器,如果你在這些瀏覽器里面安裝一個 Selenium 的插件,那么便可以方便地實現(xiàn)Web界面的測試。
Selenium 2,又名 WebDriver,它的主要新功能是集成了 Selenium 1.0 以及 WebDriver(WebDriver 曾經是 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官網下載鏈接:
https://www.python.org/downloads/windows/
pycharm官網下載鏈接: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.知識點

Selenium定位web元素的方法
瀏覽器調試工具使用

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

3.打開12306

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

4.登錄12306
1)在chrome界面,按F12快捷鍵,彈出chrome的調試工具
2)找出登錄按鈕的id和username、password的id
根據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)

根據鏈接的文本來定位元素

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

在這里插入圖片描述

選擇出發(fā)地

這里寫圖片描述

利用js代碼凍結瀏覽器界面。

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、因為是學生認證所以多一步需要確認(不是學生可去掉)
3、訂票成功

六、總結

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

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

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

附代碼:

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

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

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

#打開網址
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("車票預訂").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("預訂").click()
      # 乘車人選擇
      driver.find_element_by_css_selector("#normal_passenger_id > li:nth-child(1) > label").click()
      # 學生票確認(不是學生可去掉)
      driver.find_element_by_link_text("確認").click()
      # 提交訂單
      driver.find_element_by_link_text("提交訂單").click()
      driver.find_element_by_link_text("確認").click()
  except:
    pass

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

相關文章

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

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

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

    全網最細 Python 格式化輸出用法講解(推薦)

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

    python format 格式化輸出方法

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

    Python中__name__的使用實例

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

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

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

    解決pytorch報錯:AssertionError: Invalid device id的問題

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

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

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

    python 中如何獲取列表的索引

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

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

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

    基于pandas中expand的作用詳解

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

最新評論

额敏县| 同仁县| 壤塘县| 浑源县| 远安县| 大埔县| 宣化县| 昌邑市| 青冈县| 呼伦贝尔市| 文成县| 四会市| 余江县| 舟曲县| 兴宁市| 沙河市| 桐庐县| 循化| 将乐县| 锡林郭勒盟| 交口县| 北碚区| 新和县| 淅川县| 大新县| 龙南县| 海城市| 鲁甸县| 和田市| 博爱县| 南涧| 怀仁县| 阿合奇县| 通渭县| 法库县| 龙游县| 昆山市| 瓮安县| 金阳县| 建平县| 莆田市|