这是我的第一个真正意思上的自动化脚本。
1、练习的测试用例为:
打开百度首页,搜索“胡歌”,然后检索列表,有无“胡歌的新浪微博”这个链接 2、在写脚本之前,需要明确测试的步骤,具体到每个步骤需要做什么,既拆分测试场景,考虑好之后,再去写脚本。
此测试场景拆分如下:
1)启动Chrome浏览器
2)打开百度首页,
3)定位搜索输入框,输入框元素XPath表达式://*[@id=”kw”]
4)定位搜索提交按钮(百度一下)://*[@id=”su”]
5)在搜索框输入“胡歌”,点击百度一下按钮
6)在搜索结果列表判断是否存在“胡歌的新浪微博”这个链接
7)退出浏览器,结束测试
【注】chrome获取XPath路径步骤如下:
1)在你打开的网页(如:百度首页),按F12,弹出如下窗口
2)点击左上角箭头按钮(或Ctrl + Shift + C),此时可以在页面上移动光标,查看对应的代码,如移动到百度搜索框,显示如下:
点击一下,对应代码就会选中
然后,右击copy–>copy path 复制到XPath路径。
3、代码如下:
import timefrom selenium import webdriver'''测试用例:打开百度首页,搜索“胡歌”,然后检索列表,有无“胡歌的新浪微博”这个链接场景拆分:1)启动Chrome浏览器2) 打开百度首页,3)定位搜索输入框,输入框元素XPath表达式://*[@id="kw"]4)定位搜索提交按钮(百度一下)://*[@id="su"]5)在搜索框输入“胡歌”,点击百度一下按钮6)在搜索结果列表判断是否存在“胡歌的新浪微博”这个链接7)退出浏览器,结束测试'''driver = webdriver.Chrome()driver.maximize_window()driver.implicitly_wait(8) # 设置隐式等待时间driver.get("") # 地址栏里输入网址driver.find_element_by_xpath('//*[@id="kw"]').send_keys("胡歌") # 搜索框输入胡歌driver.find_element_by_xpath('//*[@id="su"]').click() # 点击百度一下按钮time.sleep(2) # 等待2秒# 通过元素XPath来确定该元素是否显示在结果列表,从而判断“壁纸”这个链接是否显示在结果列表# find_element_by_link_text当找不到此链接时报错,程序停止driver.find_element_by_link_text('胡歌的新浪微博').is_displayed()driver.quit()