Docker+selenium deployment of the Web Automation test environment
1. Open the Docker terminal using SECURECRT or Docker Quickstart terminal.
2. Download the image required for Selemiunui test
Command Docker Pull: Download the image from the Docker hub.
First, search for the image that needs pull
Command:Docker search Selenium
For Docker selenium, the image that needs pull here is:
Selenium/hub
Selenium/node-chrome-debug
Selenium/node-firefox-debug
Currently only supported for testing in Chrome and Firefox
The downloaded command is the Docker pull+ image name +tag
Docker pull baozhida/selenium-hub:3.3.1
Docker Pull baozhida/selenium-node-chrome-debug:58
Docker Pull Baozhida/selenium-node-firefox-debug:52
The official image may cause the open page to appear garbled in Chinese, so the above image can be used.
Description: The default tag is Latest;dockerhub server overseas, so the network speed when bad, and sometimes timeout error, more than a few times will be able to succeed.
Because the local access to the Docker hub is slow, the time taken to pull the mirror is longer.
You can pull from dockerhub on this issue, and then use the accelerator to modify Docker's registry-mirrors. The Daocloud accelerator is used here.
here's how to get an accelerator using Daocloud.
Register for login at http://www.daocloud.io/first.
To log in successfully, click Accelerator, as shown in the figure:
Wait a minute. The following interface appears, select Windows System, copy the acquired registry-mirrors configuration.
Please make sure your Docker Toolbox is up and executing the following commands (please replace the accelerator address with the dedicated address obtained on the Accelerators page)
Docker-machine SSH Default
sudo sed-i "s| Extra_args= ' | Extra_args= '--registry-mirror= acceleration address |g '/var/lib/boot2docker/profile
Exit
For more accelerated configuration of the environment, please refer to the following Help documentation
Http://guide.daocloud.io/dcs/daocloud-9153151.html
3. View image
Enter the command Docker images to view the images that have been downloaded
4. Create and run the container
Create Selenium Hub Container
dockerrun-d-P 4444:4444--name selehub baozhida/selenium-hub:3.3.1
Create a Chrome node container
Docker run-d-P 5901:5900--name node58--linkselehub:hub
--shm-size=512mbaozhida/selenium-node-chrome-debug:58
Create a Firefox node container
Docker run-d-P 5912:5900--name ff52--linkselehub:hub
--shm-size=512m baozhida/selenium-node-firefox-debug:52
Description
*-d Parameters: Background mode operation;
--name parameter: alias;
-P Parameter: Maps the container's 5900 port to the 5901 port of Docker and accesses the 5901 port of Docker to access the node container;
--shm-size parameter: Docker default shared Memory/dev/shm only 64m, sometimes causing Chrome to crash, this parameter increases the shared memory size to 512m.*
5. Enter the command Docker ps-a view the running container in the UP state
6. Enter the address in the browser http://192.168.99.100:4444/grid/console
Check the Selenium grid console to see that the container you just created is registered properly
7. VNC Remote Browser environment
Debug end of the mirror with the VNC server side, the local installation of the VNC client, you can connect remotely.
Download Address: https://www.realvnc.com/en/connect/download/vnc/
Enter 192.168.99.100:5901--> carriage return-Enter Password:secret--> confirm-Enter chrome:58 container desktop
Enter 192.168.99.100:5901--> carriage return-Enter Password:secret--> confirm-Enter firefox:52 container desktop
8. Run the following script locally to test.
#coding =utf-8
from Selenium import webdriver
firefox_capabilities={
"browsername": "Firefox",
"version": "52.0", #注意版本号一定要写对
"platform": "Any",
"javascriptenabled": True,
"marionette": true,
}
Browser=webdriver. Remote ("Http://192.168.99.100:4444/wd/hub", desired_capabilities=firefox_capabilities) #注意端口号4444是我们上文中映射的宿主机端口号
browser.get ("http://www.baidu.com")
Browser.get_screenshot_as_file (r "C:/baidu.png")
Browser.close ()
The effect of the above code is: Open the Baidu interface with firefox52.0, and save the screenshot in the C drive.
But following the above, the code reported the following error:
Workaround:
The corresponding modification should be made according to the method in (http://blog.csdn.net/liujingqiu/article/details/74857145).
Then use the official image to create the Selenium hub container:
Close the original Selenium hub container
Docker stop "CONTAINER ID" (The ID of the corresponding container)
Remove the original Selenium hub container
Docker rm "NAMES" (as described above, the name here uses Selehub)
Download Selenium/hub image
Docker pull Selenium/hub (version defaults to latest)
Create Selenium Hub Container
Docker run-d-P 4444:4444--nameselehub Selenium/hub
Run the script again