欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

python+Selenium自動化測試——輸入,點擊操作

 更新時間:2020年03月06日 08:42:10   作者:_Alice  
這篇文章主要介紹了python+Selenium自動化測試——輸入,點擊操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧

這是我的第一個真正意思上的自動化腳本。

1、練習(xí)的測試用例為:

打開百度首頁,搜索“胡歌”,然后檢索列表,有無“胡歌的新浪微博”這個鏈接 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),此時可以在頁面上移動光標(biāo),查看對應(yīng)的代碼,如移動到百度搜索框,顯示如下:

點擊一下,對應(yīng)代碼就會選中

然后,右擊copy–>copy path 復(fù)制到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) # 設(shè)置隱式等待時間

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當(dāng)找不到此鏈接時報錯,程序停止
driver.find_element_by_link_text('胡歌的新浪微博').is_displayed()
driver.quit()

補充知識:python + selenium自動化測試--頁面操作

1、刷新當(dāng)前頁面

.refresh()

# 刷新當(dāng)前頁面
driver.refresh()

2、獲取本頁面的URL

.current_url

用處:

一般URL可以幫助我們判斷跳轉(zhuǎn)的頁面是否正確,或者URL中部分字段可以作為我們自動化測試腳本期待結(jié)果的一部分。

print(driver.current_url)

3、頁面標(biāo)題

獲取當(dāng)前頁面標(biāo)題

.title

# 獲取當(dāng)前頁面標(biāo)題顯示的字段
print(driver.title)

斷言頁面標(biāo)題

# 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、新建標(biāo)簽頁

用js實現(xiàn)如下:

try:
 # 新標(biāo)簽頁,此處用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)容了,希望能給大家一個參考,也希望大家多多支持腳本之家。

相關(guān)文章

  • Python argparse模塊使用方法解析

    Python argparse模塊使用方法解析

    這篇文章主要介紹了Python argparse模塊使用方法解析,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友可以參考下
    2020-02-02
  • python?pandas數(shù)據(jù)處理教程之合并與拼接

    python?pandas數(shù)據(jù)處理教程之合并與拼接

    在實際處理數(shù)據(jù)業(yè)務(wù)需求中,我們經(jīng)常會遇到這樣的需求,將多個表連接起來再進行數(shù)據(jù)的處理和分析,類似SQL中的連接查詢功能,下面這篇文章主要給大家介紹了關(guān)于python?pandas數(shù)據(jù)處理教程之合并與拼接的相關(guān)資料,需要的朋友可以參考下
    2022-02-02
  • Pytorch加載圖像數(shù)據(jù)集的方法

    Pytorch加載圖像數(shù)據(jù)集的方法

    這篇文章主要介紹了Pytorch加載圖像數(shù)據(jù)集的方法,加載圖像數(shù)據(jù)集(這里以分類為例),通常都需要經(jīng)過兩個步驟:定義數(shù)據(jù)集和創(chuàng)建Dataloader數(shù)據(jù)加載器,本文通過代碼示例和圖文講解的非常詳細,需要的朋友可以參考下
    2024-08-08
  • python 多進程并行編程 ProcessPoolExecutor的實現(xiàn)

    python 多進程并行編程 ProcessPoolExecutor的實現(xiàn)

    這篇文章主要介紹了python 多進程并行編程 ProcessPoolExecutor的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-10-10
  • python輸入整條數(shù)據(jù)分割存入數(shù)組的方法

    python輸入整條數(shù)據(jù)分割存入數(shù)組的方法

    今天小編就為大家分享一篇python輸入整條數(shù)據(jù)分割存入數(shù)組的方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2018-11-11
  • 詳解Python字典小結(jié)

    詳解Python字典小結(jié)

    這篇文章主要介紹了詳解Python字典小結(jié),詳細的介紹了什么是字典且創(chuàng)建字典和示例,非常具有實用價值,需要的朋友可以參考下
    2018-10-10
  • Python自動打印被調(diào)用函數(shù)變量名及對應(yīng)值?

    Python自動打印被調(diào)用函數(shù)變量名及對應(yīng)值?

    這篇文章主要介紹了Python自動打印被調(diào)用函數(shù)的變量名及對應(yīng)的值,文章圍繞主題展開詳細的內(nèi)容介紹,具有一定的參考價,需要的朋友可以參考一下?
    2022-07-07
  • Python 用__new__方法實現(xiàn)單例的操作

    Python 用__new__方法實現(xiàn)單例的操作

    這篇文章主要介紹了Python 用__new__方法實現(xiàn)單例的操作,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧
    2020-12-12
  • python入門之語言基礎(chǔ)

    python入門之語言基礎(chǔ)

    這篇文章主要介紹了Python入門之基礎(chǔ)語法詳解,文中有非常詳細的代碼示例,對正在學(xué)習(xí)python的小伙伴們有很大的幫助喲,需要的朋友可以參考下
    2021-10-10
  • Python 函數(shù)裝飾器應(yīng)用教程

    Python 函數(shù)裝飾器應(yīng)用教程

    函數(shù)裝飾器是Python提供的一種增強函數(shù)功能的標(biāo)記函數(shù),本文將帶大家深入學(xué)習(xí)一下Python 函數(shù)裝飾器,感興趣的同學(xué)跟隨小編一起學(xué)習(xí)吧
    2021-12-12

最新評論