docker Selenium-Grid環境搭建


原理可以自行了解:

總的來說 ,就是主節點和子節點,主節點發送任務request到子節點上,子節點收到命令並且執行

那么怎么搭建這套環境呢,他們又是如何連接起來的呢

一、主節點hub

首先可以查看和selenium相關的鏡像,找到我們需要啟動的鏡像

這里使用 docker search selenium 可以查看

 

 

 這里我們選擇selenium/hub鏡像

開啟鏡像,selenium/hub,命令如下:

sudo docker run -d -p 4444:4444 -e GRID_MAX_SESSION=200 --restart=always --name hub selenium/hub

docker run 可以直接運行鏡像, 首先它會去docker中查看是否有鏡像selenium/hub,如果沒有則進入docker hub下載(docker pull selenium/hub),然后啟動;反之,直接啟動

鏡像啟動成功:http://localhost:4444/grid/console 查看是否有啟動,並且可以查看子節點

 

二、子節點啟動

這里我使用的是docker search selenium找到的selenium/node-chrome和selenium/node-chrome-debug;

debug中自帶vnc server 可以共開發者調試

開啟debug鏡像:

sudo docker run -d -e NODE_MAX_INSTANCES=1 -e NODE_MAX_SESSION=1 --shm-size=5g -p 5900:5900 --link hub:hub --name node4 selenium/node-chrome-debug

這里的5900端口暴露出來,才可以連接,否則會連接被拒:The connection was refused by the computer

打開之后,需要輸入密碼:secret

成功運行后,可以看到界面:

 

 

 三、運行腳本查看效果

腳本:

from selenium import webdriver

# 連接到主節點
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                          desired_capabilities={'browserName': 'chrome'})

driver.get('https://www.baidu.com/')

driver.find_element_by_id("kw").send_keys("小心走火")
driver.find_element_by_id("su").click()

運行腳本:內容如下

 

 

注意: 只運行一個case時,docker按順序選擇node節點運行一次該case。這樣開多個node節點,然后使用多線程運行,即可將case並發進行了

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM