File tree Expand file tree Collapse file tree 5 files changed +83
-3
lines changed Expand file tree Collapse file tree 5 files changed +83
-3
lines changed Original file line number Diff line number Diff line change
1
+ version : ' 3.7'
2
+
3
+ services :
4
+
5
+ hub :
6
+ image : selenium/hub:3.141.59
7
+ ports :
8
+ - 4444:4444
9
+ deploy :
10
+ mode : replicated
11
+ replicas : 1
12
+ placement :
13
+ constraints :
14
+ - node.role == worker
15
+
16
+ chrome :
17
+ image : selenium/node-chrome:3.141.59
18
+ volumes :
19
+ - /dev/urandom:/dev/random
20
+ depends_on :
21
+ - hub
22
+ environment :
23
+ - HUB_PORT_4444_TCP_ADDR=hub
24
+ - HUB_PORT_4444_TCP_PORT=4444
25
+ - NODE_MAX_SESSION=1
26
+ entrypoint : bash -c 'SE_OPTS="-host $$HOSTNAME -port 5555" /opt/bin/entry_point.sh'
27
+ ports :
28
+ - 5555:5555
29
+ deploy :
30
+ replicas : 1
31
+ placement :
32
+ constraints :
33
+ - node.role == worker
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+
4
+ echo " Spinning up four droplets..."
5
+
6
+ for i in 1 2 3 4; do
7
+ docker-machine create \
8
+ --driver digitalocean \
9
+ --digitalocean-access-token $DIGITAL_OCEAN_ACCESS_TOKEN \
10
+ node-$i ;
11
+ done
12
+
13
+
14
+ echo " Initializing Swarm mode..."
15
+
16
+ docker-machine ssh node-1 -- docker swarm init --advertise-addr $( docker-machine ip node-1)
17
+
18
+
19
+ echo " Adding the nodes to the Swarm..."
20
+
21
+ TOKEN=` docker-machine ssh node-1 docker swarm join-token worker | grep token | awk ' { print $5 }' `
22
+
23
+ docker-machine ssh node-2 " docker swarm join --token ${TOKEN} $( docker-machine ip node-1) :2377"
24
+ docker-machine ssh node-3 " docker swarm join --token ${TOKEN} $( docker-machine ip node-1) :2377"
25
+ docker-machine ssh node-4 " docker swarm join --token ${TOKEN} $( docker-machine ip node-1) :2377"
26
+
27
+
28
+ echo " Deploying Selenium Grid to http://$( docker-machine ip node-1) :4444"
29
+
30
+ eval $( docker-machine env node-1)
31
+ docker stack deploy --compose-file=docker-compose.yml selenium
32
+ docker service scale selenium_chrome=5
Original file line number Diff line number Diff line change
1
+ #! /bin/bash
2
+
3
+
4
+ echo " Bringing down the services"
5
+
6
+ docker service rm selenium_chrome
7
+ docker service rm selenium_hub
8
+
9
+
10
+ echo " Bringing down the droplets"
11
+
12
+ docker-machine rm node-1 node-2 node-3 node-4 -y
Original file line number Diff line number Diff line change 4
4
from selenium .webdriver .common .by import By
5
5
from selenium .webdriver .support .ui import WebDriverWait
6
6
from selenium .webdriver .support import expected_conditions as EC
7
+ from selenium .webdriver .common .desired_capabilities import DesiredCapabilities
7
8
from bs4 import BeautifulSoup
8
9
9
10
10
- def get_driver ():
11
+ def get_driver (address ):
11
12
# initialize options
12
13
options = webdriver .ChromeOptions ()
13
14
# pass in headless argument to options
14
15
options .add_argument ('--headless' )
15
16
# initialize driver
16
- driver = webdriver .Chrome (chrome_options = options )
17
+ driver = webdriver .Remote (
18
+ command_executor = f'http://{ address } :4444/wd/hub' ,
19
+ desired_capabilities = DesiredCapabilities .CHROME )
17
20
return driver
18
21
19
22
Original file line number Diff line number Diff line change @@ -15,7 +15,7 @@ def run_process(browser, page_number=1):
15
15
16
16
17
17
if __name__ == '__main__' :
18
- browser = get_driver ()
18
+ browser = get_driver (sys . argv [ 2 ] )
19
19
data = run_process (browser , sys .argv [1 ])
20
20
browser .quit ()
21
21
print (f'Finished page { sys .argv [1 ]} ' )
You can’t perform that action at this time.
0 commit comments