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

posted @ 2020-05-13 13:37  RonyJay  阅读(493)  评论(0编辑  收藏  举报