美文网首页Python自动化运维我爱编程@IT·互联网
Selenium+Python自动化测试环境搭建

Selenium+Python自动化测试环境搭建

作者: 车大侠丶 | 来源:发表于2016-07-06 13:50 被阅读2232次

    前言

    1.什么是Selenium?

    Selenium主要用于web应用程序的自动化测试,但并不局限于此,它还支持所有基于web的管理任务自动化。
    它的特点如下:

    • 开源,免费
    • 多浏览器支持:Firefox、Chrome、IE、Opera、Edge
    • 多平台支持:Linux、Windows、Mac
    • 多语言支持:Java、Python、Ruby、C#、JavaScript、C++
    • 对web页面有良好的支持
    • 简单(API简单)、灵活(开发语言驱动)
    • 支持分布式测试用例执行

    2.选择Python2还是Python3?

    目前情况来看,两个版本的更新与维护都在继续。并且Python2的开发者依然过半,所以个人觉得选择哪一个版本进行入门学习都可以,对于有丰富经验的Pythoner来说,选择用哪个版本要取决于自己使用的库、框架是否支持该版本,如果是新手的话,选择Python3的最大好处就是可以很大程度的避免编码问题。

    Windows平台搭建步骤

    1.安装Python

    访问Python官方网站
    根据自己的操作系统32/64 位,选择相应的版本。
    安装过程我就不详细描述了,动动手指头,Google一下,你就知道。我的安装目录为:C:\Python35

    2.验证是否安装成功

    进入cmd(windows命令提示符)下面输入"python"命令。应该如图1所示


    图1

    Tips:
    如果提示python不是内部或外部命令!去配置一下环境变量即可。
    修改我的电脑->属性->高级->环境变量->系统变量中的PATH为:
    变量名:PATH
    变量值:C:\Python35;
    也可以在Python安装界面,勾选Add Python3.5 to PATH复选框,在安装完成后自动完成path的配置工作。

    3.安装pip

    首先需要在Python的官网上去下载,下载地址是:https://pypi.python.org/pypi/pip#downloads
    如图2

    图2
    下载完成之后,解压到一个文件夹,用CMD控制台进入解压目录,输入:
    $ python setup.py install
    

    安装好之后,我们直接在命令行输入pip,同样会显示‘pip’不是内部命令,也不是可运行的程序。因为我们还没有添加环境变量。
    按照之前介绍的添加环境变量的方法,我们在PATH最后添加:

    C:\Python35\Scripts;
    

    然后重新打开CMD验证。

    Tips:
    在最新的Python安装包中已经集成了pip,可以在Python的安装目录C:\Python35\Scripts下查看是否有pip.exe或pip3.exe文件。

    4.安装Selenium

    通过pip命令可以直接安装
    $ pip install selenium

    5.第一个自动化脚本

    完成了以上的准备工作,我们的Selenium+Python自动化测试环境就搭建好了,下面就可以编写自动化脚本了。

    from selenium import webdriver
    from time import sleep
    driver = webdriver.Firefox()
    driver.get("http://www.baidu.com")
    print('设置浏览器全屏打开')
    driver.maximize_window()
    driver.find_element_by_xpath(".//*[@id='kw']").send_keys("python")
    driver.find_element_by_xpath(".//*[@id='su']").click()
    sleep(5)
    driver.quit()
    

    6.安装浏览器驱动

    各个浏览器驱动下载地址:http://www.seleniumhq.org/download/
    然后将下载得到的exe文件放到python的安装目录下。
    安装完成后可以用IE和Chrome来替换Firefox运行上面的例子。

    driver = webdriver.Firefox()
    

    替换为:

    driver = webdriver.Chrome()
    

    或:

    driver = webdriver.Ie()
    

    如果程序能够调用相应的浏览器运行,说明浏览器驱动安装成功。

    相关文章

      网友评论

      • 8cfd0966c60e:Traceback (most recent call last):
        File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p
        ackages\selenium\webdriver\common\service.py", line 74, in start
        stdout=self.log_file, stderr=self.log_file)
        File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\subpro
        cess.py", line 676, in __init__
        restore_signals, start_new_session)
        File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\subpro
        cess.py", line 955, in _execute_child
        startupinfo)
        FileNotFoundError: [WinError 2] 系统找不到指定的文件。

        During handling of the above exception, another exception occurred:

        Traceback (most recent call last):
        File "123.py", line 10, in <module>
        driver =webdriver.Firefox()
        File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p
        ackages\selenium\webdriver\firefox\webdriver.py", line 140, in __init__
        self.service.start()
        File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p
        ackages\selenium\webdriver\common\service.py", line 81, in start
        os.path.basename(self.path), self.start_error_message)
        selenium.common.exceptions.WebDriverException: Message: 'geckodriver' executable
        needs to be in PATH.

        Exception ignored in: <bound method Service.__del__ of <selenium.webdriver.firef
        ox.service.Service object at 0x0000000000DB0CC0>>
        Traceback (most recent call last):
        File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p
        ackages\selenium\webdriver\common\service.py", line 173, in __del__
        self.stop()
        File "C:\Users\Administrator\AppData\Local\Programs\Python\Python35\lib\site-p
        ackages\selenium\webdriver\common\service.py", line 145, in stop
        if self.process is None:
        AttributeError: 'Service' object has no attribute 'process'
      • 我是怪人我也不美:你好,我按照你的操作然后运行程序,但是只是打开了一个空白的浏览器页面,并没有进行后续操作,然后浏览器就关闭了,下面是报告的错误信息:
        Traceback (most recent call last):
        File "C:/Users/Administrator/Desktop/first.py", line 3, in <module>
        driver = webdriver.Firefox()
        File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\webdriver.py", line 80, in __init__
        self.binary, timeout)
        File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\extension_connection.py", line 52, in __init__
        self.binary.launch_browser(self.profile, timeout=timeout)
        File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\firefox_binary.py", line 68, in launch_browser
        self._wait_until_connectable(timeout=timeout)
        File "C:\Python27\lib\site-packages\selenium\webdriver\firefox\firefox_binary.py", line 108, in _wait_until_connectable
        % (self.profile.path))
        WebDriverException: Message: Can't load the profile. Profile Dir: c:\users\admini~1\appdata\local\temp\tmpcrkoo8 If you specified a log_file in the FirefoxBinary constructor, check it for details.
        请问你有遇到这种情形吗,找不到是哪里出了问题
        车大侠丶:@我是怪人我也不美 有可能是火狐浏览器的版本问题,可以试试谷歌浏览器或者升级火狐浏览器

      本文标题:Selenium+Python自动化测试环境搭建

      本文链接:https://www.haomeiwen.com/subject/fpskjttx.html