Docker 极大的提高了自动化的效率,并且为分布式测试提供了理想的环境。在 Docker之前,启动 Selenium Grid 是非常耗时的事情。使用 Docker 之后,自动化能以更高的效率进行扩展。

安装步骤

拉取所需镜像

目前使用到两个镜像:

docker pull selenium/hub
docker pull selenium/node-chrome

启动对应的 Docker 镜像

按 Selenium Docker 官方 GitHub 上的推荐方式启动如下:

docker network create grid
docker run -d -p 4444:4444 --net grid --name selenium-hub selenium/hub
docker run -d --net grid -e HUB_HOST=selenium-hub -v /dev/shm:/dev/shm selenium/node-chrome

服务启动之后,可以通过 http://127.0.0.1:4444/grid/console 看到对应的节点:
Screen Shot 2018-09-30 at 2.51.18 PM.png

运行测试脚本

from selenium import webdriver
import time
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
driver = webdriver.Remote(command_executor='http://127.0.0.1:4444/wd/hub',
                          desired_capabilities=DesiredCapabilities.CHROME)
driver.get('http://www.baidu.com/')
driver.find_element_by_xpath('//*[@id="kw"]').send_keys("docker")
driver.find_element_by_xpath('//*[@id="su"]').click()
time.sleep(1)
driver.get_screenshot_as_file("test.png")
driver.quit()