???????????????????
????Webdriver?????????????棬?????????????????Web??????????????????????????????????????????
????Firefox??????????????Webdriver???У????????????????????????????????????http://www.seleniumhq.org/download/
????????????????????????????ChromeDriver_win32.zip????????chrome.driver.exe??????????????????????C??Python27????
1 #coding=utf-8
2 from selenium import webdriver
3 from selenium.common.exceptions import WebDriverException
4 from time import sleep
5
6 driver = webdriver.Chrome()
7 driver.get('http://www.baidu.com')
8
9 try:
10     driver.find_element_by_id("kw").send_keys("phantomjs")
11     driver.find_element_by_id('su').click()
12     sleep(3)
13     driver.get_screenshot_as_file("D:\baidu_ok.jpg")
14 except WebDriverException as mgs:
15     print mgs
16     driver.get_screenshot_as_file("D:\baidu_error.jpg")
17 finally:
18     driver.quit()
???????????????????????????????????????????????£?

?????????????????
????Selenium Grid??????????????????????????hub?????????(node)???з????????????????????????????????????????????????????????????????????????????????????????п????????????????н????
????1.????????á?????Selenium Server
????????????http://www.seleniumhq.org/download/?????????????selenium-server-standalone-xxx.jar??????jar????java?????????????л????????java??????
????2.????Java????
????????????http://www.oracle.com/technetwork/java/javase/downloads/index.html?????????JDK?????e????????????????????????
????win10????????????—??????—?????????—????????——?????
????#???
????????????JAVA_HOME
???????????C:Program Files (x86)Javajdk1.8.0_91        //?????????????·??????
????????????CLASS_PATH
???????????.;%JAVA_HOME%libdt.jar;%JAVA_HOME%lib ools.jar;
????#???path?????????????
????????????path
???????????C:Program Files (x86)Javajdk1.8.0_91in;C:Program Files (x86)Javajdk1.8.0_91jrein;
???????java??????????ó??

????3.????Selenium Server
???????????selenium-server-standalone-2.53.0.jar??????selenium??????£????java -jar selenium-server-standalone-2.53.0.jar???????Selenium Server??

????????Selenium Grid???
????Selenium Grid?????в?????????????????hub?????????node??hub???????4444??node???5555???????????????????node???????????????
#selenium-server-standalone-xxx.jar -role hub
selenium-server-standalone-xxx.jar -role hub
#selenium-server-standalone-xxx.jar -role node
selenium-server-standalone-xxx.jar -role node -port 5555
selenium-server-standalone-xxx.jar -role node -port 5556
1 from selenium.webriver import Remote
2
3 #????remote????
4 driver = Remote(command_executor ='http://127.0.0.1:4444/wd/hub'??
5                        desired_capabilities ={'platform':'ANY'??
6                                                      'browserName':'chrome'
7                                                      'version':''
8                                                      'javascriptEnabled':'True'
9
10     }
11 )
12
13 driver.get("http://www.baidu.com")
14 driver??find_element_by_id("kw").send_keys('remote')
15 driver.find_element_by_id("su").click()
16 driver.quit()
????????????????????
????Selenium Server????????????????Romote???ò???????????Щ???????С?
?????????????????
selenium-server-standalone-2.53.0.jar -role hub
selenium-server-standalone-2.53.0.jar -role node -port 5555
selenium-server-standalone-2.53.0.jar -role node -port 5556
1  from selenium.webriver import Remote
2
3   ???????????????
4   lists = {'http://127.0.0.1:4444/wd/hub':'Firefox'??
5            'http://127.0.0.1:5555/wd/hub':'Chrome'??
6            'http://127.0.0.1:5556/wd/hub':'Phantomjs'??
7
8   }
9
10  for host??browser in lists:
11      print (host??browser)
12      driver = Remote(command_executor = host??
13                      desired_capabilities ={'platform':'ANY'??
14                                             'browserName':browser
15                                             'version':''
16                                             'javascriptEnabled':'True'
17
18       }
19   )
20
21      driver.get("http://www.baidu.com")
22      driver??find_element_by_id("kw").send_keys('remote')
23      driver.find_element_by_id("su").click()
24
25      driver.quit()