自動化測試:學習Selenium+Python的過程中遇到的坑和解決方法
當純手工測試已經不能滿足專案的需要時,我們就引入了自動化測試,下面我來列舉一下我在學習Selenium+Python的過程中遇到的坑以及解決方法。 加我VX:atstudy-js 回覆“測試”,進入 自動化測試學習交流群~~
大多數初學者可能從開始到結束寫一個操作流程,都能很流暢的寫下來,但是這種只適應於迴歸測試,用自動化指令碼進行整體功能的迴歸測試,不適應於對某個具體功能進行詳細測試,那麼這個時候就引入了UnitTest,對測試用例進行管理。
但對於初學者來說,從一個檔案分化到多個檔案,方法使用規則的不清晰等等,都可能導致測試失敗,這個問題就是在使用UnitTest管理用例的時候遇到的問題。
我遇到這個問題的時候,試了很多方法,一開始以為是程式碼哪裡呼叫的不對,各種查,從網上也各種搜尋解決方法,說什麼的都有,但是嘗試之後都沒有得到解決。
然後我又對比了之前跟著學習影片練習的例子發現,在練習中我編寫測試用例的方法都是以test開頭,而我在實際應用中的用例並沒有以test開頭,就在想是不是這個影響的呢?
然後我就將所有的測試用例的方法都加上了test字首,一執行果然測試用例都執行了。那麼如果我們的用例不想以test開頭怎麼辦呢?
既然我們已經找到了問題所在,我們就可以針對具體問題來從網上查詢原因了。透過一步步進入方法檢視所得,我們找到了TestLoader函式。如下圖:
我們發現,這個方法裡定義的查詢測試用例的字首就是test。如果我們想用其他字首來定義方法,將這裡的字首改成ceshi,然後將所有的測試用例都加上ceshi字首,執行程式碼:
這裡給小夥伴們寫一下如何定位到這裡。
1)透過左側導航欄:
小編遇到這種問題的時候也是各種不解啊,當時測的是新增客戶的頁面,由於之前寫的程式碼都是每一條用例都會重新整理一下當前頁面,我想改成不重新整理當前頁面,每次只開啟新增頁面,就將頁面重新整理的操作放到了setUp方法中(人工填寫非複製)。
但是放過去之後,執行用例發現,頁面載入出來了,但是客戶性別的下拉框沒有資料,預設值也未顯示,網上查詢各種方法都不好使,嘗試未果後,我只能將現在程式碼與之前能跑通的版本的程式碼進行了對比,對比發現,url裡多了一個/。
之前能跑通的程式碼:
找到問題後,我手動在瀏覽器上錯誤的地址,然後新增,檢視頁面資訊,果然手動操作下拉框的值也未載入。
這個經驗告訴我們,請求的url一定要填寫正確,不能是自己以為的,也不能覺得多一個/少一個/無所謂。如果真是url寫錯導致用例執行失敗,真的很難定位問題。
定位不到元素
涉及到頁面切換的時候,往往就是元素定位問題存在最多的地方,我們以 為例:
新頁面點選小度商城,跳轉到商城頁面,下面我們來寫一下程式碼:
driver = webdriver.Chrome()
driver.get(")
driver.find_element_by_link_text("更多").click()
driver.find_element_by_link_text("小度商城").click()
執行程式碼我們發現,並沒有成功定位到“小度商城”的連結:
driver = webdriver.Chrome()
driver.get(")
driver.find_element_by_link_text("更多").click()
#獲取所有的控制程式碼(瀏覽器所有的Tab頁)
hand=driver.window_handles
print(hand)
#頁面定位到最大的頁面(最後開啟的頁面)
driver.switch_to_window(hand[1])
driver.find_element_by_link_text("小度商城").click()
執行程式碼發現,執行成功了。
解決該問題的過程,讓我明白了,眼睛看到的不一定是真的,雖然我們肉眼看到頁面上顯示已經切換到最新的頁面,但是程式碼裡不一定是,如果遇到頁面跳轉的情況,我們還需要確定程式碼裡當前定位到的是哪個頁面,再進行對元素的定位。
以上三個問題,雖然都不是什麼大問題,但是如果方向找過了,容易一直繞在裡面找不到解決的辦法。這幾個問題是我在學習實踐的過程中遇到的花費時間較長的問題,希望對大家能有所幫助。
最後:
可以我的個人V:atstudy-js,可以免費領取一份10G軟體測試工程師面試寶典文件資料。以及相對應的影片學習教程免費分享!,其中包括了有基礎知識、Linux必備、Mysql資料庫、抓包工具、介面測試工具、測試進階-Python程式設計、Web自動化測試、APP自動化測試、介面自動化測試、測試高階持續整合、測試架構開發測試框架、效能測試等。
這些測試資料,對於做【軟體測試】的朋友來說應該是最全面最完整的備戰倉庫,這個倉庫也陪伴我走過了最艱難的路程,希望也能幫助到你!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31407649/viewspace-2872571/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 如何學習自動化測試?從手工測試到自動化測試的過程…
- Selenium+Python自動化測試環境搭建和搭建過程遇到的問題解Python
- selenium+python自動化測試Python
- Composer 使用過程中遇到的問題和解決方案
- APP自動化測試過程概述APP
- python學習遇到的困難和解決方法1Python
- 基於Selenium+Python的web自動化測試框架PythonWeb框架
- 救命!!!jenkins 中自動化測試中遇到無法解決的問題Jenkins
- 電商APP測試過程中遇到的問題APP
- 深度學習中“過擬合”的產生原因和解決方法深度學習
- 學習vue過程中遇到的問題Vue
- 【DATAGUARD 學習】學習DATAGUARD 過程中遇到的問題
- Web自動化測試 環境搭建(selenium+python)WebPython
- Web自動化測試 —— 測試環境搭建 (Selenium+Python) Windows篇WebPythonWindows
- 學習自動化測試的一些感悟
- 近兩天學習使用 Homestead 過程中遇到的問題及解決方法
- Android UI 自動化測試實現過程AndroidUI
- [android]android自動化過程遇到的問題Android
- 【轉】寫給想學習自動化測試的新人
- 真機測試遇到的坑!
- SSH 專案過程中遇到的問題和解決方法彙總 struts2 spring hibernateSpring
- 新手如何開始學習自動化測試?
- 學習 java 做自動化測試相關Java
- 避坑指南:Golang框架自動化測試中的常見問題與解決方案大全Golang框架
- npm包使用過程中遇到的坑,長期更~NPM
- iPaaS中API自動化測試的作用API
- UI 自動化測試中遇到的問題,希望可以獲得大佬們的解答UI
- ui自動化測試,頁面方法的使用UI
- 自動化裝置測試與自動化測試的區別
- 談軟體自動化測試工具的評測方法
- 自動化測試系列 —— UI自動化測試UI
- Selenium Web Driver自動化測試(java版)系列下半部分(37) - 關鍵字驅動自動化測試框架(2)-測試過程...WebJava框架
- antd(螞蟻金服使用過程中遇到的小坑)
- Web自動化-Selenium自動化測試-1-主要學習計劃Web
- 敏捷交付中的自動化測試 | IDCF敏捷
- 測試自動化中遵循的最佳實踐
- 軟體開發中的自動化測試
- 自動化測試框架: Delphi中"包"的妙用框架