zoukankan      html  css  js  c++  java
  • 【selenium学习 -2】一个基本的测试流程的例子

    最近想好好写写博客,就继续以前关于web自动化的写,希望能写成一个系列

    webdriver在驱动浏览器时,需要下载对应的驱动,注意需要和自己所使用的浏览器版本相匹配

    Chrome下载 chromedriver.exe 下载地址 http://chromedriver.storage.googleapis.com/index.html

    Firefox 下载 geckodriver.exe 下载地址 https://github.com/mozilla/geckodriver/releases/

    IE 下载  IE Driver 下载地址 https://www.nuget.org/packages/Selenium.WebDriver.IEDriver/

     今天的这个例子,就是一个简单的百度搜索,并验证搜索后网页Title的用例(使用chrome示例)

    如果平时做黑盒测试,步骤一般如下:

    1,打开浏览器

    2,输入百度的网址

    3,输入关键词(本例关键词 - 双J版稻香)

    4,点击 “百度一下”

    5,查看网页的Title

    6,网页的Title是否和预期一致

    7,退出浏览器,结束测试

    其实UI层面的自动化,和黑盒测试并无差别,只是用代码的形式,代替了我们平常的点点点罢了。

    from selenium import webdriver
    import time
    
    
    class test01():
        def __init__(self):
            # 一种方法强制指定driver路径
            # chrome_driver = r"/path/to/chromedriver"
            # self.driver = webdriver.Chrome(executable_path=chrome_driver)
            # 二种方法将driver路径放置进环境变量中,就可以直接使用
            self.driver = webdriver.Chrome() # 1.打开浏览器
            self.driver.maximize_window()  # 最大化窗口
            self.driver.get("https://www.baidu.com/") # 2.打开百度
    
        def input_text(self):
            self.driver.find_element_by_name("wd").send_keys("双J版稻香") # 3.输入关键词
            self.driver.find_element_by_id("su").click() # 4.点击 "百度一下"
            time.sleep(3)  # 添加等待时间,等待网页反应过来
    
        # 获取网页title
        def get_title(self):
            return self.driver.title
    
        # 关闭浏览器窗口并结束drive进程
        def close(self):
            self.driver.quit()
    
    
    if __name__ == '__main__':
        bd = test01()
        bd.input_text()
        title = bd.get_title() # 5.获取网页的Title
        assert title == '双J版稻香_百度搜索'   # 6.做断言,验证网页的Title是否和预期一致
        bd.close() # 7.关闭浏览器,退出测试

    需要注意的几个点:

    1.driver的路径,一种方式是强制指定路径,二种方法是放入环境变量中,可直接使用

    2.因为脚本的速度很快,有时网页的速度跟不上,所以需要添加一些等待时间,以避免找不到元素等问题,在什么地方添加,根据脚本而定

    3.UI自动化的基本流程就是,打开浏览器 - 定位元素 - 操作 - 断言,我感觉更多的难点是做合适的断言去判断这条用例是否通过

  • 相关阅读:
    算法
    爬虫--scrapy框架
    Flask--SQLAlchemy
    Flask--WTForms
    Django--model操作
    Odoo10 自定义模块创建
    odoo10 工作流、安全机制、向导
    odoo10 高级视图
    odoo10 onchange、唯一性约束
    Odoo10 模型(结构化的应用数据)、视图(用户界面设计)
  • 原文地址:https://www.cnblogs.com/ronyjay/p/12881882.html
Copyright © 2011-2022 走看看