您好,登錄后才能下訂單哦!
小編給大家分享一下python+Selenium自動化測試的示例分析,相信大部分人都還不怎么了解,因此分享這篇文章給大家參考一下,希望大家閱讀完這篇文章后大有收獲,下面讓我們一起去了解一下吧!
1、練習的測試用例為:
打開百度首頁,搜索“胡歌”,然后檢索列表,有無“胡歌的新浪微博”這個鏈接 2、在寫腳本之前,需要明確測試的步驟,具體到每個步驟需要做什么,既拆分測試場景,考慮好之后,再去寫腳本。
此測試場景拆分如下:
1)啟動Chrome瀏覽器
2)打開百度首頁,https://www.baidu.com
3)定位搜索輸入框,輸入框元素XPath表達式://*[@id=”kw”]
4)定位搜索提交按鈕(百度一下)://*[@id=”su”]
5)在搜索框輸入“胡歌”,點擊百度一下按鈕
6)在搜索結(jié)果列表判斷是否存在“胡歌的新浪微博”這個鏈接
7)退出瀏覽器,結(jié)束測試
【注】chrome獲取XPath路徑步驟如下:
1)在你打開的網(wǎng)頁(如:百度首頁),按F12,彈出如下窗口
2)點擊左上角箭頭按鈕(或Ctrl + Shift + C),此時可以在頁面上移動光標,查看對應的代碼,如移動到百度搜索框,顯示如下:
點擊一下,對應代碼就會選中
然后,右擊copy–>copy path 復制到XPath路徑。
3、代碼如下:
import time from selenium import webdriver ''' 測試用例:打開百度首頁,搜索“胡歌”,然后檢索列表,有無“胡歌的新浪微博”這個鏈接 場景拆分: 1)啟動Chrome瀏覽器 2) 打開百度首頁,https://www.baidu.com 3)定位搜索輸入框,輸入框元素XPath表達式://*[@id="kw"] 4)定位搜索提交按鈕(百度一下)://*[@id="su"] 5)在搜索框輸入“胡歌”,點擊百度一下按鈕 6)在搜索結(jié)果列表判斷是否存在“胡歌的新浪微博”這個鏈接 7)退出瀏覽器,結(jié)束測試 ''' driver = webdriver.Chrome() driver.maximize_window() driver.implicitly_wait(8) # 設置隱式等待時間 driver.get("https://www.baidu.com") # 地址欄里輸入網(wǎng)址 driver.find_element_by_xpath('//*[@id="kw"]').send_keys("胡歌") # 搜索框輸入胡歌 driver.find_element_by_xpath('//*[@id="su"]').click() # 點擊百度一下按鈕 time.sleep(2) # 等待2秒 # 通過元素XPath來確定該元素是否顯示在結(jié)果列表,從而判斷“壁紙”這個鏈接是否顯示在結(jié)果列表 # find_element_by_link_text當找不到此鏈接時報錯,程序停止 driver.find_element_by_link_text('胡歌的新浪微博').is_displayed() driver.quit()
補充知識:python + selenium自動化測試--頁面操作
1、刷新當前頁面
.refresh()
# 刷新當前頁面
driver.refresh()
2、獲取本頁面的URL
.current_url
用處:
一般URL可以幫助我們判斷跳轉(zhuǎn)的頁面是否正確,或者URL中部分字段可以作為我們自動化測試腳本期待結(jié)果的一部分。
print(driver.current_url)
3、頁面標題
獲取當前頁面標題
.title
# 獲取當前頁面標題顯示的字段 print(driver.title)
斷言頁面標題
# 1) 包含判斷 # assert:斷言,聲稱 try: assert "百度一下" in driver.title print("斷言測試成功.") except Exception as e: print("斷言失敗.",format(e)) # 2) 完全相等判斷 if "百度一下,你就知道" == driver.title: print("成功.") else: print("失敗.") print(driver.title)
4、新建標簽頁
用js實現(xiàn)如下:
try: # 新標簽頁,此處用js實現(xiàn),在有些博客上顯示使用 # driver.find_element_by_tag_name('body').send_keys(Keys.CONTROL, 't') # 我這測試無效,原因不知,于是采用如下方法 js = "window.open('http://www.acfun.cn/')" driver.execute_script(js) # 切換到新的窗口 handles = driver.window_handles # 獲取窗口句柄 driver.switch_to.window(handles[-1]) # 切換到最后一個既最新打開的窗口 # 先切換窗口再打開新網(wǎng)址,才是在新窗口打開網(wǎng)址,不然還是在原來的百度頁面打開此網(wǎng)址 driver.get('http://map.baidu.com/') except Exception as e: print("發(fā)現(xiàn)異常,",format(e))
5、頁面前進、后退
前進: .forward()
后退: .back()
driver.get("https://www.baidu.com") time.sleep(2) '''前進,后退''' elem_news = driver.find_element_by_link_text("新聞").click() # 點擊進入新聞 time.sleep(2) driver.back() # 后退到百度首頁 time.sleep(2) driver.forward() # 從百度前進到新聞頁 time.sleep(2)
6、獲取瀏覽器版本號
.capabilities[‘version']
# 獲取瀏覽器版本號 """ Creates a new session with the desired capabilities. :Args: - browser_name - The name of the browser to request. - version - Which browser version to request. - platform - Which platform to request the browser on. - javascript_enabled - Whether the new session should support JavaScript. - browser_profile - A selenium.webdriver.firefox.firefox_profile.FirefoxProfile object. Only used if Firefox is requested. """ print(driver.capabilities['version'])
以上是“python+Selenium自動化測試的示例分析”這篇文章的所有內(nèi)容,感謝各位的閱讀!相信大家都有了一定的了解,希望分享的內(nèi)容對大家有所幫助,如果還想學習更多知識,歡迎關(guān)注億速云行業(yè)資訊頻道!
免責聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。