Selenium中復用已經打開的瀏覽器進行自動化測試,可以輔助我們解決某些登錄需要掃二維碼之后,才能進行的操作
如果是使用的谷歌Chrome瀏覽器,那需要做哪些准備操作呢?往下看
1、windows和Mac上使用命令啟動一個Debug監聽端口的瀏覽器
windows上命令如下:
chrome --remote-debugging-port=9222
Mac上命令如下:
/Applications/Google\ Chrome.app/Contents/MacOS/Google\ Chrome --remote-debugging-port=9222
如果已經把谷歌瀏覽器的路徑加入到環境變量中,可以使用
Google\ Chrome --remote-debugging-port=9222
來啟動,啟動后的終端界面如下:
2、啟動好瀏覽器之后,只是做好了第一步,那在代碼中,我們該怎么寫呢,接着往下看
在測試類的setup方法中,我們實例化一個Options()對象,配置Options()對象的debugger_address
接着創建一個driver,並使用他的options參數,將Options()對象傳入進去
之后,我們就可以在啟動的瀏覽器上運行我們的測試代碼了。
如果是在pageobject設計模式下,就在basepage基礎頁面對象初始化 時,將Options對象創建,配置調試端口
2021-6-19 看資料發現解決掃碼登錄還有一個新的方法,待補充【通過獲取當前瀏覽器cookie的方式】
1、以企業微信的后台管理登錄為例,使用新的瀏覽器,打開登錄掃碼頁面,強制等待10秒手動完成掃碼,掃碼進入管理后台
2、登錄后,在代碼中使用driver返回當前頁面的cookies值,並保存為json文件
3、后續的測試用例,可以使用新保存的cookie,添加在driver中即可