最近在用RED進(jìn)行web自動化測試深纲,RED是官方發(fā)布的針對python3 robot editor ide瓦堵,下載地址:
http://nokia.github.io/RED/
因?yàn)檫\(yùn)行測試時間比較長盐茎,隨便都幾十分鐘,中間想做其他事情做不成(頁面總是彈出)蹋订,想尋找一種在后臺運(yùn)行測試的方法橄教,然后就發(fā)現(xiàn)了headless模式。
image.png
附上代碼:
${options}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
Call Method ${options} add_argument --headless
Create WebDriver Chrome chrome_options=${options}
其他瀏覽器類似浩村。
用這個模式運(yùn)行測試的時候做葵,程序是在后臺跑的,就是沒有界面心墅,不過失敗截圖什么的還正常進(jìn)行酿矢。
然后繼續(xù)深入,嘗試打開Chrome的模擬手機(jī)H5頁面:
${devname} Create Dictionary deviceName=iphone 5/SE
${chromeoptions}= Evaluate sys.modules['selenium.webdriver'].ChromeOptions() sys, selenium.webdriver
Call Method ${chromeoptions} add_experimental_option mobileEmulatuion ${devname}
Create WebDriver Chrome chrome_options=${options}
Go To http://www.baidu.com #url
如果要用headless模式時怎燥,再加上一句:
Call Method ${chromeoptions} add_argument --headless
好瘫筐,問題解決了。
不過在使用過程中出現(xiàn)了一個小問題铐姚,窗口最大化的問題(因?yàn)橛械膬?nèi)容瀏覽器窗口不最大化策肝,元素定位不到),很順手就寫了
Maximize Browser Window
但是發(fā)現(xiàn)不管用!2蹬础F蟆(我這兒是這樣)
然后就上網(wǎng)搜索解決方法,在options中加入argument
--window-size=1920,1080 #可以設(shè)置窗口大小
試了試還是不行酝枢,一直出錯恬偷,這個解決不了了,不過有個萬能解決方法帘睦,用Python袍患,反正解決不了的問題用Python幾乎都能解決,將options用python寫個關(guān)鍵字封裝下:
from selenium import webdriver
class utils:
#web模式
def create_headlesschrome_options(self):
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
chrome_options.add_argument('--window-size=1920,1080')
return chrome_options
#H5模式
def create_app_headlesschrome_options(self,deviceName='iPhone 5/SE'):
devname={'deviceName':deviceName}
chrome_options = webdriver.ChromeOptions()
chrome_options.add_argument('--headless')
chrome_options.add_argument('--disable-gpu')
#chrome_options.add_argument('--deviceName=iPhone 5/SE')
chrome_options.add_experimental_option('mobileEmulation',devname)
# chrome_options.add_argument('--window-size=1920,1080')
return chrome_options
然后竣付,使用的時候:
${options} utils.Create Headlesschrome Options #web模式
#${options} utils.Create App Headlesschrome Options #H5模式
Create WebDriver Chrome chrome_options=${options}
go to %{nt_url}
好了诡延,解決。