Python+Selenium基礎篇之5-第一個完整的自動化測試指令碼__Python

來源:互聯網
上載者:User

      前面文章,我們介紹了如何採用XPath運算式去定位網頁元素,在掌握了如何抓取或者如何書寫精確的XPath運算式後,我們可以開始寫自己的第一個真正意義上的webui 自動化測試指令碼,就相當於,你在學習Python,如何在控制台列印Hello,Python。 一樣。

      我們的測試案例是:開啟百度首頁,搜尋Selenium,然後檢查搜尋列表,有沒有Selenium這個官網連結選項。

      在寫自動化指令碼之前,需要明確手動指令碼的步驟,然後去拆分到具體沒一個步驟做什麼,考慮好了之後,才開始動手去寫指令碼。我把這個測試情境分拆如下步驟:

1) 啟動後瀏覽器,這裡我們用Chrome

2) 開啟百度首頁,https://www.baidu.com

3) 定位搜尋輸入框,記錄下輸入框元素的xpath運算式://*[@id='kw']

4) 定位搜尋提交按鈕(百度一下這個按鈕),擷取xpath運算式://*[@id='su']

5) 在搜尋輸入框輸入“Selenium”,點擊百度一下這個按鈕。

6) 在搜尋結果列表去判斷是否存在Selenium官網這個連結。

7) 退出瀏覽器,結束測試。


如果,還不會通過Firefox瀏覽器上外掛程式firepath擷取元素的運算式,請看上一篇文章。如果你沒有安裝Chrome,那就用Firefox。

1) 案頭建立一個記事本,命名並儲存為FirstScript.py

2) 輸入如下程式碼片段到FirstScript.py,儲存

3) 開啟cmd視窗,切換到案頭路徑下,然後通過python FirstScript.py 來執行指令碼。


FirstScript.py指令碼如下

# coding=utf-8import timefrom selenium import webdriverdriver = webdriver.Chrome() # 開啟chrome,如果沒有安裝chrome,換成webdriver.Firefox()driver.maximize_window()    # 最大化瀏覽器視窗driver.implicitly_wait(8)   # 設定隱式時間等待driver.get("https://www.baidu.com")  # 地址欄輸入百度地址driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")  # 搜尋輸入框輸入Seleniumdriver.find_element_by_xpath("//*[@id='su']").click()  #點擊百度一下按鈕# 匯入time模組,等待2秒time.sleep(2) # 這裡通過元素XPath運算式來確定該元素顯示在結果清單,從而判斷Selenium官網這個連結顯示在結果清單。# 這裡採用了相對元素定位方法/../# 通過selenium方法is_displayed() 來判斷我們的目標元素是否在頁面顯示。driver.find_element_by_xpath("//div/h3/a[text()='官網']/../a/em[text()='Selenium']").is_displayed()driver.quit()


第二種斷言寫法:

# coding=utf-8import timefrom selenium import webdriverdriver = webdriver.Chrome()driver.maximize_window()driver.implicitly_wait(8)driver.get("https://www.baidu.com")driver.find_element_by_xpath("//*[@id='kw']").send_keys("selenium")driver.find_element_by_xpath("//*[@id='su']").click()time.sleep(2)# 第二個判斷方法ele_string = driver.find_element_by_xpath("//div/h3/a[text()='官網']/../a").textif (ele_string == u"Selenium - Web Browser Automation"):    print "測試成功,結果和預期結果匹配。"driver.quit()

      這裡只利用 兩個等號(==)來判斷兩個字串是否完全相同,有時候我們還需要對得到的字串進行切割操作,才能進行去匹配,以後再介紹字串切割處理在自動化測試結果判斷中的使用。

總結:自動化測試最難的在於如何去寫斷言,如何判斷測試結果是否通過。

     建議: 以上程式碼封裝括以後文章中指令碼舉例,你還是最好去一行一行抄寫,不要直接複製、黏貼到你記事本中。因為,你在書寫指令碼過程,肯定會犯一些文法和輸入錯誤,在調試指令碼過程,通過觀察報錯資訊,直到你解決問題,可以順利執行指令碼,你會得到和收穫很多。



相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.