且构网

分享程序员开发的那些事...
且构网 - 分享程序员编程开发的那些事

Python selenium chrome 环境配置

更新时间:2022-08-12 20:20:06

                         Python selenium chrome 环境配置

一、参考文章:
    1. 记录一下python easy_install和pip安装地址和方法
        http://heipark.iteye.com/blog/1916758
    2. selenium + python自动化测试环境搭建
        http://www.cnblogs.com/fnng/archive/2013/05/29/3106515.html
    3. Python-selenium-Firefox-chrome-IE问题解决方法
        http://blog.csdn.net/lcm_up/article/details/38302143
    4. ChromeDriver - WebDriver for Chrome Getting started
        https://sites.google.com/a/chromium.org/chromedriver/getting-started

二、Windows PowerShell
    1. 【win】键
    2. 键入:Windows PowerShell + 【Enter】键

三、Python setuptools 18.4 安装:
    1. download:https://pypi.python.org/pypi/setuptools
    2. 跳到ez_setup.py所在的目录
    3. python .\ez_setup.py

四、Python pip 7.1.2 安装:
    1. download:https://pypi.python.org/pypi/pip#downloads
    2. 跳到解压出来的目录下的setup.py所在的目录
    3. python setup.py install

五、Python selenium 2.48.0 安装:
    1. download:https://pypi.python.org/pypi/selenium
    2. 跳到解压出来的目录下的setup.py所在的目录
    3. python setup.py install

六、chrome driver
    1. download:http://chromedriver.storage.googleapis.com/index.html?path=2.20/
    2. 解压拷贝文件到:D:\python2_7\chromedriver_win32\chromedriver.exe
    3. 创建一个chrome浏览器实例:
        driver = webdriver.Chrome('D:\python2_7\chromedriver_win32\chromedriver') ##可以替换为IE(), FireFox()

七、Test Demo(请确保能访问Google):
    #!/usr/bin/python
    # -*- coding: utf-8 -*-
    
    import os
    from selenium import webdriver
    from selenium.common.exceptions import TimeoutException
    from selenium.webdriver.support.ui import WebDriverWait # available since 2.4.0
    import time
    
    # Create a new instance of the browser driver
    driver = webdriver.Chrome('D:\python2_7\chromedriver_win32\chromedriver')  ##可以替换为IE(), FireFox()
    
    # go to the google home page
    driver.get("http://www.google.com")
    
    # find the element that's name attribute is q (the google search box)
    inputElement = driver.find_element_by_name("q")
    
    # type in the search
    inputElement.send_keys("Cheese!")
    
    # submit the form. (although google automatically searches now without submitting)
    inputElement.submit()
    
    # the page is ajaxy so the title is originally this:
    print driver.title
    
    try:
        # we have to wait for the page to refresh, the last thing that seems to be updated is the title
        WebDriverWait(driver, 10).until(lambda driver : driver.title.lower().startswith("cheese!"))
    
        # You should see "cheese! - Google Search"
        print driver.title
    
    finally:
    
        #driver.quit()      # 当前使用 driver.quit()会导致如下错误
        #   Traceback (most recent call last):
        #   File "E:/python/Spider/Spider.py", line 39, in <module>
        #       driver.quit()
        #   File "D:\python2_7\install\lib\site-packages\selenium-2.48.0-py2.7.egg\selenium\webdriver\chrome\webdriver.py", line 88, in quit
        #       self.service.stop()
        #   File "D:\python2_7\install\lib\site-packages\selenium-2.48.0-py2.7.egg\selenium\webdriver\chrome\service.py", line 111, in stop
        #       url_request.urlopen("http://127.0.0.1:%d/shutdown" % self.port)
        #   File "D:\python2_7\install\lib\urllib2.py", line 126, in urlopen
        #       return _opener.open(url, data, timeout)
        #   File "D:\python2_7\install\lib\urllib2.py", line 397, in open
        #       response = meth(req, response)
        #   File "D:\python2_7\install\lib\urllib2.py", line 510, in http_response
        #       'http', request, response, code, msg, hdrs)
        #   File "D:\python2_7\install\lib\urllib2.py", line 435, in error
        #       return self._call_chain(*args)
        #   File "D:\python2_7\install\lib\urllib2.py", line 369, in _call_chain
        #       result = func(*args)
        #   File "D:\python2_7\install\lib\urllib2.py", line 518, in http_error_default
        #       raise HTTPError(req.get_full_url(), code, msg, hdrs, fp)
        #   urllib2.HTTPError: HTTP Error 404: Not Found
    
        driver.close()