1分钟了解一个测开小知识:
selenium的工作原理:
selenium是web,ui自动化测试框架。通过3个步骤实现了软件代替人工在页面进行的点点点操作:
以在百度输入自己姓名,这个操作为例
3. 针对页面返回的数据,或数据库中的数据,对操作的效果进行验证:
回到上一期,操作百度的输入框,输入了我是名字,针对页面中的元素,我们可以根据用例的期望结果,判断系统实现是否符合预期
首先,明确期望结果是什么,比如:这个,我们希望看到我是名字的返回结果数量大约10万条,即验证查询结果的数量
我们找到,页面统计数量的字符串的位置:
参照第一期的内容,我们将鼠标移动到这个元素上后,右键--》检查,再将鼠标移动到对应代码上,右键--》copy-->copy为Xpath
//*[@id="container"]/div[2]/div/div[2]/span,这样我们就获取到这个字符串的控件内容了
然后像第二期介绍的内容,让selenium获取到这个元素
slzd = driver.find_element_by_xpath('//*[@id="container"]/div[2]/div/div[2]/span')
因为需要根据字符串的内容,判断是否符合预期,selenium获取字符串的方法,为text
获取这段文字的代码如下:
fhsjnr = slzd.text
这样,就捕捉到了这条完整的信息描述“百度为您找到相关结果约100,000,000个”
再之后,需要对这段文字进行截取,使用的是正则表达式,但是内容过于复杂,在这里埋一个知识点。我们就按照这个文字的返回作为预期,写一个判断
if fhsjnr== '百度为您找到相关结果约100,000,000个':
print("验证通过")
else:
print("验证不通过,预期结果为:百度为您找到相关结果约100,000,000个,页面返回内容为{},".format(fhsjnr))
这样,我们就完成了一个使用selenium进行的web,ui自动化测试的完整流程了~
完整源码如下:
#!/usr/bin/env python # -*- coding: utf-8 -*- # @Time : 2019-16-02 13:22 from selenium import webdriver from time import sleep class Create_Members(): def __init__(self): pass def User_Login_XTGL(self): chrome_path = "D:\develop_Tools\python3.7\Scripts\chromedriver.exe" driver = webdriver.Chrome(chrome_path) driver.implicitly_wait(10) driver.get("https://www.baidu.com/") # 登录百度网页 srkj = driver.find_element_by_xpath('//*[@id="kw"]') # 捕捉百度输入框 srkj.send_keys("我是名称") slzd = driver.find_element_by_xpath('//*[@id="container"]/div[2]/div/div[2]/span') # 步骤数量字段在页面中的文本位置 fhsjnr = slzd.text # 获取文本内容 if fhsjnr == '百度为您找到相关结果约100,000,000个': print("验证通过") else: print("验证不通过,预期结果为:百度为您找到相关结果约100,000,000个,页面返回内容为{},".format(fhsjnr)) driver.quit() # 测试方法,测试完成后,需要注掉 if __name__ == "__main__": a = Create_Members() a.User_Login_XTGL()