国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

不可錯(cuò)過的自動(dòng)化測(cè)試框架:robotframework之WebDriver功能配置

zhouzhou / 3242人閱讀

摘要:使用圖設(shè)置瀏覽器語言為英文方法圖設(shè)置瀏覽器語言為英文方法結(jié)果功能該功能最常見的用法就是使用該功能配置屏蔽網(wǎng)站對(duì)爬蟲等自動(dòng)化程序的檢測(cè)。

rf(即robotframework)是自動(dòng)化測(cè)試常用的框架之一,在前端自動(dòng)化測(cè)試中常與webdriver驅(qū)動(dòng)器,以及rf的selenium2library庫搭配使用。selenium2library提供的open browser,close browser,click element……等關(guān)鍵字方便了廣大測(cè)試人員編寫前端自動(dòng)化用例。

編寫前端自動(dòng)化用例的首要原則即是模仿用戶的習(xí)慣,在瀏覽器上進(jìn)行各種“點(diǎn)擊”、“下拉”、“滑動(dòng)”等操作驗(yàn)證瀏覽器返回的響應(yīng)是否與用戶期望一致。但是,往往在前端自動(dòng)化測(cè)試過程中會(huì)遇到進(jìn)行瀏覽器設(shè)置從而使得測(cè)試用例更快、更穩(wěn)定運(yùn)行的情形。例如:設(shè)置瀏覽器避開https認(rèn)證,設(shè)置瀏覽器窗口大小,設(shè)置無頭瀏覽器以便Linux環(huán)境運(yùn)行,設(shè)置瀏覽器下載目錄方便用例獲取下載文件等等。那么,接下來,就讓我們從問題入手,講講rf在編寫自動(dòng)化用例使用webdriver啟動(dòng)瀏覽器時(shí),可以進(jìn)行哪些設(shè)置。

先看幾個(gè)經(jīng)常遇到的問題

1.如何啟動(dòng)無界面瀏覽器進(jìn)行自動(dòng)化測(cè)試?

1)問題解答

這個(gè)問題很簡單,想必大家都知道。啟動(dòng)瀏覽器時(shí)添加參數(shù)—headless和—no-sandbox即可。--headless表示啟動(dòng)無界面瀏覽器;--no-sandbox表示禁用沙盒模式,若在—headless模式下不添加—no-sandbox則會(huì)提示DevToolsActivePort文件不存在的錯(cuò)誤。

2)rf樣例

讓我們看看rf是怎么使用—headless和—no-sandbox參數(shù)的。rf啟動(dòng)瀏覽器在selenium2library中提供了兩個(gè)參數(shù):open browser和create webdriver。open browser可以看作create webdriver和go to {url}方法的一個(gè)聯(lián)合實(shí)例,可以快速啟動(dòng)一個(gè)瀏覽器實(shí)例,并跳轉(zhuǎn)到指定{url}。

在此,我們講解下最簡單常用的方法添加—headless和—no-sandbox啟動(dòng)瀏覽器。如下圖1所示:open browser關(guān)鍵字提供了headlesschrome和headlessfirefox兩個(gè)參數(shù)以啟動(dòng)無界面的chrome和firefox瀏覽器,使用options=add_argument(‘—no-sandbox’)即可開啟禁用沙盒模式。

圖1 rf啟動(dòng)無界面瀏覽器模式

2.如何繞開https認(rèn)證?

1)問題解答

我們?cè)L問https://......鏈接時(shí)通常會(huì)遇到如下圖2所示安全提示,手動(dòng)操作時(shí)常用的方法有兩種:一是在瀏覽器中配置對(duì)應(yīng)網(wǎng)站的安全認(rèn)證證書,配置完成后再次訪問該網(wǎng)站則不會(huì)再進(jìn)行安全提示;二是點(diǎn)擊圖2中所示的“繼續(xù)前往xxx(不安全)”,表示用戶已知且認(rèn)可不安全的訪問模式。

在我們進(jìn)行自動(dòng)化過程中,也可以采取上傳在證書認(rèn)證的方式。但是為了簡便,常用的方法是跳過安全認(rèn)證——使用--ignore-certificate-errors忽略瀏覽器安全認(rèn)證錯(cuò)誤提示,類似于點(diǎn)擊“繼續(xù)前往xxx(不安全)”。

圖2 https安全提示例圖

2)rf樣例

方法如1中類似,在open browser啟動(dòng)瀏覽器時(shí)傳入add_argument("--ignore-certificate-errors")即可,如下圖3所示。

圖3 rf跳過https安全提示

3.如何更改瀏覽器默認(rèn)下載目錄?

1)問題解答

在webdriver啟動(dòng)瀏覽器實(shí)例進(jìn)行測(cè)試過程中,常??赡軙?huì)遇到需要瀏覽器下載文件并對(duì)下載的文件進(jìn)行比對(duì)、確認(rèn)等操作。但瀏覽器下載目錄通常是默認(rèn)配置,在無界面模式情況下,想要設(shè)置瀏覽器下載目錄為自己想要的目錄非常不易。此時(shí),你可能需要這樣一個(gè)參數(shù)配置:download.default_directory=${your_download_path}。

2)rf樣例

如下圖4所示,使用open browser的desired_capablilities傳入{"goog:chromeOptions": {"prefs": {"download.default_directory": "D://Software//common"}}}參數(shù),設(shè)置瀏覽器下載目錄為D:/Software/common。

圖4 rf設(shè)置瀏覽器下載目錄

在rf運(yùn)行過程中,截圖開啟的瀏覽器窗口,查看下載目錄,設(shè)置成功為D:/Software/common。

圖5 rf設(shè)置瀏覽器下載目錄結(jié)果

問題拓展

open browser是大家在前端自動(dòng)化實(shí)現(xiàn)過程中常用關(guān)鍵字,上述3個(gè)問題,1、2是大家常見的問題,3可能使用的不是很多。但是你知道嗎,在上述舉例過程中已經(jīng)潛在的告訴了大家兩個(gè)方式來修改瀏覽器參數(shù)或拓展瀏覽器的能力:一種是使用options參數(shù);另一種是使用desired_capablilities參數(shù)。

那么,你知道這兩個(gè)參數(shù)該怎么使用嗎?兩個(gè)有什么區(qū)別嗎?

或者,你知道樣例3中更改瀏覽器下載目錄也可以如下圖這樣通過options傳參修改嗎?

圖6 rf設(shè)置瀏覽器下載目錄(使用options參數(shù))

接下來,讓我們以chromedriver為例深入的了解一下rf webdriver的功能拓展和選項(xiàng)配置吧~

1.何為chromedriver的功能配置

功能是你可以用來定制和配置ChromeDriver會(huì)話的選項(xiàng),例如上述樣例中涉及到的無界面配置—headless,禁用沙盒模式—no-sandbox等等。

2.chromedriver功能列表有哪些

下面列舉一下可以通過options或desired_capablilities參數(shù)設(shè)置的一些常用功能。

1)args功能

參數(shù)值類型:字符串列表;是否默認(rèn)配置:否。

該功能為當(dāng)啟動(dòng)Chrome時(shí)使用的命令行參數(shù)列表。常見的args參數(shù)有:

–user-data-dir=”[PATH]”:指定用戶文件夾User Data路徑,可以把書簽這樣的用戶數(shù)據(jù)保存在系統(tǒng)分區(qū)以外的分區(qū);

–disk-cache-dir=”[PATH]“:指定緩存Cache路徑;

–disk-cache-size= :指定Cache大小,單位Byte;

–first run:重置到初始狀態(tài),第一次運(yùn)行;

–disable-javascript:禁用Javascript;

--user-agent="xxxxxxxx":修改HTTP請(qǐng)求頭部的Agent字符串;

--disable-plugins:禁止加載所有插件,可以增加速度;

--start-maximize:啟動(dòng)就最大化‘

--lang=zh-CN 設(shè)置語言為簡體中文

……

更多Chrome參數(shù)列表可以參考https://peter.sh/experiments/chromium-command-line-switches/。

2)binary功能

參數(shù)值類型:字符串;是否默認(rèn)配置:否。

Chrome可執(zhí)行文件的使用路徑。

3)extensions功能

參數(shù)值類型:字符串列表;是否默認(rèn)配置:否。

在啟動(dòng)時(shí)安裝的Chrome擴(kuò)展列表。列表中的每一項(xiàng)都應(yīng)該是base-64編碼打包的Chrome擴(kuò)展(.crx)。

4)localState功能

參數(shù)值類型:字典;是否默認(rèn)配置:否。

5)prefs功能

參數(shù)值類型:字典;是否默認(rèn)配置:否。

這些首選項(xiàng)只應(yīng)用于正在使用的用戶配置文件。可以在本地/Google/Chrome/User Data/Default/Preferences?查看“Preferences”文件。如樣例3中的瀏覽器下載配置在Preferences文件中配置為:

6)detach功能

參數(shù)值類型:布爾;是否默認(rèn)配置:是,默認(rèn)值為false。

如果為false,當(dāng)ChromeDriver被殺死時(shí),Chrome將被退出,不管會(huì)話是否退出。如果為true, Chrome只會(huì)在會(huì)話退出(或關(guān)閉)時(shí)退出。注意,如果為true,并且會(huì)話沒有退出,ChromeDriver不能清理正在運(yùn)行的Chrome實(shí)例使用的臨時(shí)用戶數(shù)據(jù)目錄。

7)debuggerAddress功能

參數(shù)值類型:字符串;是否默認(rèn)配置:否。

一個(gè)要連接到的Chrome調(diào)試器服務(wù)器的地址,格式為,如“127.0.0.1:38947”。

8)excludeSwitches功能

參數(shù)值類型:字符串列表;是否默認(rèn)配置:否。

9)minidumpPath功能

參數(shù)值類型:字符串;是否默認(rèn)配置:否。

minidump存儲(chǔ)目錄,僅在linux平臺(tái)使用。

10)mobileEmulation功能

參數(shù)值類型:字典;是否默認(rèn)配置:否。

11)perfLoggingPrefs功能

參數(shù)值類型:字典;是否默認(rèn)配置:否。

指定性能日志記錄首選項(xiàng)。

12)windowTypes功能

參數(shù)值類型:字符串列表;是否默認(rèn)配置:否。

將出現(xiàn)在窗口句柄列表中的窗口類型列表。

3.如何進(jìn)行chromedriver功能配置

在rf中,可以使用open browser的options參數(shù)或desired_capablilities參數(shù)進(jìn)行功能設(shè)置。但值得注意的是:desired_capabilities參數(shù)要求傳入值為字典格式,而options為字符串格式。

舉例樣例可見先前舉例,此外我們挑選部分chromedriver的功能列表進(jìn)行部分舉例說明。

1)args功能

針對(duì)args功能,可以有3種方法在瀏覽器啟動(dòng)的時(shí)候添加功能。以修改瀏覽器—langt為例,設(shè)置瀏覽器語言為英文

·使用options=add_argument(‘—lang=en’)

圖6 rf設(shè)置瀏覽器語言為英文方法1

·注意:add_argument的方法只適用于參數(shù)在https://peter.sh/experiments/chromium-command-line-switches/列表中的參數(shù)使用,對(duì)于不在該列表中的參數(shù),調(diào)用selenium.webdriver.chrome.options中的add_experimental_option方法,增加參數(shù)傳給options,可以參考圖7所示。

·使用desired_capabilities= {"goog:chromeOptions": {"args":["--lang=en"]}}

圖7 rf設(shè)置瀏覽器語言為英文方法3

圖8 rf設(shè)置瀏覽器語言為英文方法結(jié)果

2)excludeSwitches功能

該功能最常見的用法就是使用該功能配置屏蔽網(wǎng)站對(duì)爬蟲等自動(dòng)化selenium程序的檢測(cè)。例如,不適用該功能時(shí),使用selenium啟動(dòng)瀏覽器時(shí)可以在瀏覽器上方看到“Chrome正受到自動(dòng)測(cè)試軟件的控制“,當(dāng)我們?cè)O(shè)置 excludeSwitches 值為 enable-automation 即可功能后,則可以逃避對(duì)自動(dòng)測(cè)試軟件的檢測(cè)。

?

如下圖9所示,選擇上述中第三種方法,通過desired_capablities為rf用例設(shè)置enable-automation逃避自動(dòng)化測(cè)試軟件檢測(cè)方法,圖10所示為運(yùn)行結(jié)果。

圖9 rf設(shè)置enable-automation方法

圖10 rf設(shè)置enable-automation運(yùn)行結(jié)果

最后

本文主要在于介紹webdriver啟動(dòng)瀏覽器時(shí)可以使用的一些配置功能、相應(yīng)功能的參數(shù)列表以及常用的配置方法。希望能為大家在自動(dòng)化測(cè)試過程中提供少許幫助~

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/121609.html

相關(guān)文章

  • 初始Selenium

    摘要:可以方便的用于功能測(cè)試兼容性測(cè)試穩(wěn)定性測(cè)試及并發(fā)測(cè)試。目前已被主流瀏覽器廠商廣泛支持,同時(shí)也是很多其它自動(dòng)化測(cè)試工具比如,的底層核心技術(shù)。由簡稱四個(gè)工程組成是一個(gè)用于錄制回放測(cè)試腳本的附加組件,錄制的腳本可以生成基于的測(cè)試代碼等。 ...

    Heier 評(píng)論0 收藏0
  • [002] Robot Framework + SeleniumLibrary搭建

    摘要:一安裝二安裝你可以單獨(dú)從官方文檔中單獨(dú)下載想要的,并放置在下。下載想要的到下,如三測(cè)試右鍵填入比如,選擇類型為單擊輸入,即完成右擊填入比如內(nèi)容輸入右擊填入比如,選擇,選擇,即完成創(chuàng)建右擊填入比如內(nèi)容添加運(yùn)行 一、安裝?robotframework-seleniumlibrary GitHub...

    不知名網(wǎng)友 評(píng)論0 收藏0
  • 在Mac OSX 上配置Appium+Android動(dòng)化測(cè)試環(huán)境

    摘要:方式一使用安裝首先通過安裝配置國內(nèi)源,在個(gè)人目錄下新建一個(gè)文件,寫入開始安裝可以幫你診斷測(cè)試環(huán)境,建議安裝。自動(dòng)化測(cè)試代碼例子如下,啟動(dòng)內(nèi)置撥號(hào)軟件,搜索關(guān)鍵字。 前提準(zhǔn)備 開始正文之前,你需要準(zhǔn)備好一些基本條件: 安裝好Mac OSX 操作系統(tǒng)的設(shè)備 能夠訪問中國局域網(wǎng)以外資源的方法(沒有也行,但很痛苦) 已經(jīng)安裝好 homebrew 已經(jīng)安裝好 Python3.x 已經(jīng)安裝好 ...

    xialong 評(píng)論0 收藏0
  • 端到端測(cè)試哪家強(qiáng)?不容錯(cuò)過Cypress

    摘要:閱讀原文目前測(cè)試工具有哪些項(xiàng)目不需要不需要端到端測(cè)試一般都需要一個(gè)容器,來運(yùn)行前端應(yīng)用。向快速,一致和可靠的無剝落測(cè)試問好。 閱讀原文 1. 目前E2E測(cè)試工具有哪些? 項(xiàng)目 Web Star puppeteer Chromium (~170Mb Mac, ~282Mb Linux, ~280Mb Win) 31906 nightmare Electron 15502 ...

    LancerComet 評(píng)論0 收藏0
  • 【Python爬蟲】4萬字,詳解selenium從入門到實(shí)戰(zhàn)【錯(cuò)過再無】

    摘要:難在哪里根據(jù)上面的標(biāo)簽需要定位最后一行標(biāo)簽,以下列出了四種方式,定位的方式多樣并不唯一,使用時(shí)根據(jù)情況進(jìn)行解析即可。加入每日一練我們使用并指明標(biāo)簽內(nèi)全部文本即可定位。 ...

    shiyang6017 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<