1、docker里獲取selenium 鏡像
先啟動(dòng)docker 服務(wù)鹿蜀,輸入命令掷伙,service docker start
然后獲取selenium相關(guān)鏡像,本篇部署一個(gè)hub白筹,一個(gè)chrome node
輸入命令
docker pull selenium/hub
docker pull selenium/node-chrome-debug
沒指定版本即下載最新版本的鏡像,docter會(huì)嘗試先從默認(rèn)鏡像倉庫下載(默認(rèn)使用docter hub公共注冊服務(wù)器中的倉庫)谅摄,也可以通過配置徒河,使用自定義的鏡像倉庫
下載會(huì)比較慢,全部下載完成以后送漠,查看下載完的鏡像
輸入命令
docker images
這里介紹下添加國內(nèi)鏡像的方法顽照,這樣下載會(huì)很快
我這里用阿里云加速器
登錄阿里開發(fā)平臺(tái)注冊:https://dev.aliyun.com/search.html
進(jìn)入加速器頁面
https://cr.console.aliyun.com/#/accelerator
點(diǎn)擊創(chuàng)建我的容器鏡像,點(diǎn)擊鏡像加速器闽寡,選擇自己所屬平臺(tái)代兵,按要求配置即可
2、創(chuàng)建并運(yùn)行selenium相關(guān)容器
輸入命令:
docker run -p 5555:4444 -d --name hub selenium/hub
docker run -d -p 5900:5900 --link hub:hub selenium/node-chrome-debug
輸入docker ps 顯示正運(yùn)行的容器
run 是創(chuàng)建并運(yùn)行容器爷狈。
-p 是把容器里的端口映射出來植影,讓別人可以訪問。
-d 在后臺(tái)運(yùn)行
--name 給容器起別名
--link是鏈接別名為hub的容器
打開http://42.192.206.87:5555/grid/console涎永,這時(shí)候selenium grid環(huán)境已經(jīng)部署完成思币,這就是在docker里部署的好處,用容器的隔離羡微,省去好幾臺(tái)設(shè)備部署node谷饿,
3、運(yùn)行測試
到這里就環(huán)境部署完成妈倔,直接運(yùn)行測試即可
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time
driver = webdriver.Remote(
# 設(shè)定Node節(jié)點(diǎn)的URL地址博投,后續(xù)將通過訪問這個(gè)地址連接到Node計(jì)算機(jī)
# command_executor='http://192.168.221.2:4445/wd/hub', # 要和節(jié)點(diǎn)機(jī)顯示的ip地址一樣
command_executor='http://42.192.206.87:5555/wd/hub',
desired_capabilities={
# 指定遠(yuǎn)程計(jì)算機(jī)執(zhí)行使用的瀏覽器為chrome;或者internet explorer/firefox
"browserName": "chrome",
"video": "True",
# 遠(yuǎn)程計(jì)算機(jī)的平臺(tái)
"platform": "LINUX"
})
try:
driver.implicitly_wait(10)
driver.maximize_window()
driver.get("http://www.sogou.com")
assert u"搜狗" in driver.title
elem = driver.find_element_by_id("query")
elem.send_keys("自動(dòng)化測試")
elem.send_keys(Keys.RETURN)
time.sleep(3)
assert "自動(dòng)化" in driver.page_source
print('done!')
finally:
driver.quit()
Chromedirver也可以不用配置
下載命令如下
mkdir -p /opt/webDriver
cd /opt/webDriver
rz 上傳對(duì)應(yīng)版本dirver
unzip chromedriver_linux64.zip
chmod 775 chromedriver
運(yùn)行腳本結(jié)果如圖