fasttest-selenium 關鍵字驅動自動化工具
框架介紹
fasttest-selenium 是由Python語言開發的WEB端自動化框架,通過yaml編寫相應的action即可呼叫Selenium API完成自動化測試
文件介紹
用例
Action
module: selenium
skip: false
description: action相關
steps:
- openUrl('https://www.baidu.com')
# 檢查元素
- check('id=su')
# 單擊元素
- click('id=su')
# 右擊元素
- contextClick('id=su')
# 雙擊元素
- doubleClick('class=hot-refresh-text')
# 按住滑鼠左鍵
- holdClick('class=hot-refresh-text')
# 滑鼠拖放
- click('xpath=//*[@id="s-top-left"]/a[1]')
- ${all_handle} = $.getWindowHandles()
- switchToWindow(${all_handle}[-1])
- dragDrop('xpath=//*[@id="sbox"]/tbody/tr/td[1]/div[1]/a/img','id=s_btn_wr')
# 拖動元素到某個位置
- dragDropByOffset('xpath=//*[@id="sbox"]/tbody/tr/td[1]/div[1]/a/img',10,10)
- switchToWindow(${all_handle}[0])
# 滑鼠從當前位置移動到某個座標
- moveByOffset(10,10)
# 滑鼠移動到某個元素上
- moveToElement('xpath=//*[@id="hotsearch-content-wrapper"]/li[1]/a/span[2]')
# 移動到距某個元素(左上角座標)多少距離的位置
- moveToElementWithOffset('xpath=//*[@id="hotsearch-content-wrapper"]/li[1]/a/span[2]',10,20)
# 輸入
- sendKeys('name=wd','te')
- sendKeys('name=wd','Keys.COMMAND', 'v')
# 清除
- clear('name=wd')
# 截圖
- ${screenshot} = $.saveScreenshot('id=su', 'test.png')
# 執行JS
- ${js} = "window.open('http://www.taobao.com')"
- executeScript(${js})
Element
module: selenium
skip: false
description: 元素相關操作
steps:
- openUrl('https://www.baidu.com')
# 獲取單個元素 id|name|class|tag_name|link_text|partial_link_text|xpath|css_selector
- ${element_id} = $.getElement('id=su')
- ${element_name} = $.getElement('name=f')
- ${element_class} = $.getElement('class=s_ipt')
- ${element_tag_name} = $.getElement('tag_name=form')
- ${element_link_text} = $.getElement('link_text=新聞')
- ${element_partial_link_text} = $.getElement('partial_link_text=新')
- ${element_xpath} = $.getElement('xpath=//*[@id="su"]')
- ${element_css_selector} = $.getElement('css_selector=[name="wd"]')
# 獲取一組元素
- ${elements_class} = $.getElements('class=title-content-title')
# 判斷元素是否選中
- ${is_selected} = $.isSelected(${element_id})
# 判斷元素是否顯示
- ${is_displayed} = $.isDisplayed(${element_id})
# 判斷元素是否可使用
- ${is_enabled} = $.isEnabled(${element_id})
# 獲取元素大小
- ${size} = $.getSize(${element_id})
# 獲取元素座標
- ${location} = $.getLocation(${element_id})
# 獲取元素位置大小
- ${rect} = $.getRect(${element_id})
# 獲取元素tag
- ${tag_name} = $.getTagName(${element_id})
# 獲取元素文案
- ${text} = $.getText(${element_id})
# 獲取元素屬性
- ${attribute} = $.getAttribute(${element_id}, 'value')
# 獲取元素css
- ${css} = $.getCssProperty(${element_id}, 'height')
Browser
module: selenium
skip: false
description: 瀏覽器相關操作
steps:
# 開啟URL
- openUrl('https://www.baidu.com')
# 獲取瀏覽器名字
- ${getName} = $.getName()
# 視窗最大化
- maxWindow()
# 視窗最小化
- minWindow()
# 全屏視窗
- fullscreenWindow()
# 設定視窗大小
- setWindowSize(2000,1500)
# 設定視窗位置
- setWindowPosition(10,30)
# 獲取視窗大小
- ${w_size} = $.getWindowSize()
# 獲取視窗位置
- ${w_position} = $.getWindowPosition()
- click('xpath=//*[@id="s-top-left"]/a[1]')
# 獲取當前視窗控制程式碼
- ${handle} = $.getCurrentWindowHandle()
# 獲取所有視窗控制程式碼
- ${all_handle} = $.getWindowHandles()
- for ${handle} in ${all_handle}:
# 切換視窗控制程式碼
- switchToWindow(${handle})
- ${title} = $.getTitle()
- if ${title} == '百度新聞——海量中文資訊平臺':
- break
# 獲取當前視窗標題
- ${title} = $.getTitle()
# 獲取當前視窗url
- ${current_url} = $.getCurrentUrl()
- click('xpath=//*[@id="channel-all"]/div/ul/li[2]')
- click('xpath=//*[@id="channel-all"]/div/ul/li[3]')
# 後退
- back()
# 前進
- forward()
# 重新整理
- refresh()
cookie
module: selenium
skip: false
description: cookies相關
steps:
- openUrl('https://www.baidu.com')
# 獲取所有cookies
- ${cookies} = $.getCookies()
# 獲取指定cookie
- ${cookie} = $.getCookie('BAIDUID')
# 刪除指定cookie
- deleteCookie('BAIDUID')
# 刪除所有cookie
- deleteAllCookies()
# 新增指定cookie
- ${add_cookie} = {'name':'ADDCOOKIE','value':'123adc'}
- addCookie(${add_cookie})
- ${cookies} = $.getCookies()
Common
module: common
skip: false
description: 公共關鍵字
steps:
# 科學運算
- ${test1} = $.id(1+2*3)
- ${test2} = $.id('test'+' '+'common')
# 設定全域性變數
- setVar('test3', True)
# 獲取全域性變數
- ${test3} = $.getVar('test3')
# 休眠
- sleep(5)
- openUrl('https://www.baidu.com')
- ${elements} = $.getElements('class=title-content-title')
# 獲取陣列長度
- ${len} = $.getLen(${elements})
# while 迴圈
- while ${len}:
- ${len} = $.id(${len}-1)
- ${element} = ${elements}[${len}]
- ${text} = $.getText(${element})
# if elif else
- if ${len} == 3:
# 斷言
- assert ${len} == 3
elif ${text} == '美國將對更多中國公民實施簽證限制':
- break
else:
- sleep(1)
# call 公共方法
- call common_action(${elements}[0])
# 用指令碼無返回值-呼叫selenium api完成複雜動作
- keyDown(${elements}[0], '這是一條測試資料')
- sendKeys('name=wd','Keys.COMMAND', 'v')
# 呼叫指令碼有返回值
- ${text} = getText('這是一條測試資料')
End
相關文章
- UI自動化關鍵字驅動的簡單設計思路UI
- 如何理解自動化測試資料驅動與關鍵字驅動的區別?
- 關鍵字WebElement 驅動測試Web
- RobotFramework自動化2-自定義關鍵字Framework
- iOS自動化測試驅動工具探索iOS
- 自動化測試工具的3個關鍵部分
- Selenium Web Driver自動化測試(java版)系列下半部分(37) - 關鍵字驅動自動化測試框架(2)-測試過程...WebJava框架
- QTP關鍵字驅動框架 - RelevantCodes[1]OneQT框架
- 不需要驅動的自動化
- 如何禁用win10自動更新驅動_win10關閉驅動自動更新的方法Win10
- win10 自動更新驅動如何關閉_win10取消自動更新驅動程式教程Win10
- python實現自動提取句子中的關鍵字Python
- jQuery搜尋框關鍵字自動匹配提示詳解jQuery
- 中國水泥行業數字化採購:驅動產業鏈供應鏈現代化的關鍵行業產業
- win10系統如何關閉自動更新驅動 win10怎麼關閉系統自動更新驅動Win10
- SAP ABAP關鍵字語法圖和ABAP程式碼自動生成工具Code Composer
- 總結下 ui 自動化驅動架構UI架構
- 工作流自動化 低程式碼是關鍵
- TestComplete使用關鍵字測試的資料驅動測試(三)
- Google關鍵字工具Go
- win10怎麼關閉自動安裝驅動_怎麼禁止win10自動安裝驅動Win10
- 擴充套件JTextPane,使其有關鍵字自動加亮功能。 (轉)套件
- Maven:自動化構建工具Maven
- 自動化構建工具 Grunt
- maven自動化構建工具Maven
- 國產自動化測試工具
- 自動化測試工具QTPQT
- win10自動安裝顯示卡驅動怎樣關閉_怎麼禁止win10自動安裝顯示卡驅動Win10
- 求助帖:JMeter 介面自動化測試——資料驅動JMeter
- VBA驅動SAP GUI實現辦公自動化(一)GUI
- static關鍵字---"工具類"
- win10 關閉驅動更新頂方法 win10怎麼禁用自動更新驅動Win10
- 3個關鍵點助力工業機器人自動化機器人
- win10驅動更新關閉如何開啟 win10禁用自動更新驅動怎麼啟動Win10
- 16、DeathStar:一鍵自動化域滲透工具(含演示視訊)
- 自動化測試系列(2)—— 下載瀏覽器驅動瀏覽器
- VBA驅動SAP GUI自動化:查詢頁面元素FindAllByNameGUI
- win10如何關閉系統驅動更新 怎麼禁止win10自動更新驅動Win10