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