我们的测试用例是:打开百度首页,搜索Selenium,然后检查搜索列表,有没有Selenium这个官网链接选项。
在写自动化脚本之前,需要明确手动脚本的步骤,然后去拆分到具体没一个步骤做什么,考虑好了之后,才开始动手去写脚本。我把这个测试场景分拆如下步骤:
1) 启动后浏览器,这里我们用Chrome
2) 打开百度首页,https://www.baidu.com
3) 定位搜索输入框,记录下输入框元素的xpath表达式://*[@id='kw']
4) 定位搜索提交按钮(百度一下这个按钮),获取xpath表达式://*[@id='su']
5) 在搜索输入框输入“Selenium”,点击百度一下这个按钮。
6) 在搜索结果列表去判断是否存在Selenium官网这个链接。
7) 退出浏览器,结束测试。
1) 桌面新建一个记事本,命名并保存为First.py
2) 输入如下代码片段到First.py,保存
3) 打开cmd窗口,切换到桌面路径下,然后通过python First.py 来执行脚本。
import time
from selenium import webdriver
driver = webdriver.Chrome()
driver.maximize_window() # 最大化浏览器
driver.implicitly_wait(8) # 设置隐式时间等待
driver.get("https://www.baidu.com")
#input = driver.find_element_by_id('kw')
#input.send_keys('Selenium')
driver.find_element_by_id('kw').send_keys('Selenium') # 定位输入框,输入Selenium
#submit = driver.find_element_by_id('su')
#submit.click()
driver.find_element_by_id('su').click()#定位按钮'百度一下',点击按钮
time.sleep(3)
# 通过selenium方法is_displayed() 来判断我们的目标元素是否在页面显示。
#driver.find_element_by_xpath("//div/h3/a[text()='官网']/../a/em[text()='Selenium']").is_displayed()
#此处定位到element元素,然后取值,并不能写成"//div/h3/a[text()='官网']/../a/em/text()"
result = driver.find_element_by_xpath("//div/h3/a[text()='官网']/../a/em").text
if result == "Selenium":
print("测试成功,结果和预期结果匹配!")
driver.quit()
else:
print("结果不符合预期")
总结:自动化测试最难的在于如何去写断言,如何判断测试结果是否通过。