关于自动化测试其实不少时候都是为了节省时间作一些大批量的复用性工做,在正式学习自动化脚本编写以前,这里引用陈建忠老师的博客内容,但愿你们能了解一下关于什么是自动化的知识,在往后作自动化测试的过程当中会根据不一样的项目、不一样的需求、不一样的测试内容制定合理的自动化测试方案。html
https://www.cnblogs.com/111testing/p/6048190.html
前面学习了不少对于写代码进行铺垫的内容,从这一章节开始咱们就要学习如何去使用selenium+python对网页进行点击、输入、下拉、刷新等基本操做。python
一、如何使用selenium+python打开火狐浏览器并进入百度git
#coding:utf-8 '''utf-8为中文编码格式 调用selenium模块中webdriver浏览器驱动 调用时间模块''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie浏览器驱动调用方法 #driver = webdriver.Chrome()#谷歌浏览器驱动调用方法 driver.get("https://www.baidu.com")
2.设置休眠时间(运行时会等待3S,通常设置时间是为了等待打开页面加载完成)github
#coding:utf-8 '''utf-8为中文编码格式 调用selenium模块中webdriver浏览器驱动 调用时间模块''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie浏览器驱动调用方法 #driver = webdriver.Chrome()#谷歌浏览器驱动调用方法 driver.get("https://www.baidu.com") time.sleep(3)#设置休眠时间为3S
3.隐性等待(该方法为设置一个远超页面加载时间的范围,如页面加载须要20s,设置时将加载时间设置为30S,该方法会判断页面加载完成直接进行下一步操做)web
#coding:utf-8 '''utf-8为中文编码格式 调用selenium模块中webdriver浏览器驱动 调用时间模块''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie浏览器驱动调用方法 #driver = webdriver.Chrome()#谷歌浏览器驱动调用方法 driver.get("https://www.baidu.com") implicitly_wait(30)#设置隐性等待时间
implicitly_wait()比time.sleep更加智能,time.sleep只能选择一个固定的等待时间,implicitly_wait()能够在一个时间范围内进行等待。
implicitly_wait()的缺点为页面加载时间可能过长,随着ajax技术的普遍应用,如今网页中各元素内容能够实现逐步加载,可能咱们所须要的元素已经加载出来,可是对于隐性等待的方法来讲,它须要等待整个网页加载完毕才能进行下一步,因此须要的时间可能过长,延长执行过程时间。
三、显性等待(WebDriverWait)
显性等待会根据预加条件对某一个元素进行判断,通过多少秒对该元素进行查找,若是该元素已经加载出来则直接进行下一步,若是该元素没有加载出来则继续等待元素加载,也可用该方法设定某个元素在规定时间内不可见,具体根据本身的测试需求定制测试方案。
#coding:utf-8 '''utf-8为中文编码格式 调用selenium模块中webdriver浏览器驱动 调用时间模块''' from selenium import webdriver import time from selenium.webdriver.support.wait import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.common.by import By driver = webdriver.Firefox() driver.get('https://huilansame.github.io') WebDriverWait(driver,20,0.5).until( EC.presence_of_element_located((By.LINK_TEXT, 'CSDN'))) print (driver.find_element_by_link_text('CSDN').get_attribute('href')) driver.close()
四、页面刷新(须要在特定内容的界面没有加载出来时或其余场景中进行页面刷新操做)ajax
#coding:utf-8 '''utf-8为中文编码格式 调用selenium模块中webdriver浏览器驱动 调用时间模块''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie浏览器驱动调用方法 #driver = webdriver.Chrome()#谷歌浏览器驱动调用方法 driver.get("https://www.baidu.com") driver.refresh()#对当前页面进行刷新
5.浏览器窗口放大及缩小(咱们在使用浏览器的过程当中可能须要点击有上角的□对浏览器进行放大或者缩小操做,固然了,selenium也能够给咱们提供相应的方法对浏览器进行各类比较人性化的操做。)浏览器
#coding:utf-8 '''utf-8为中文编码格式 调用selenium模块中webdriver浏览器驱动 调用时间模块''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie浏览器驱动调用方法 #driver = webdriver.Chrome()#谷歌浏览器驱动调用方法 driver.get("https://www.baidu.com") time.sleep(3) #自定义设置浏览器窗口大小 driver.set_window_size(600*960) time.sleep(2) #设置浏览器窗口最大化 driver.maximize_window() #设置浏览器窗口最小化 driver.minimize_window()
六、前进或后退至某一个页面学习
#coding:utf-8 '''utf-8为中文编码格式 调用selenium模块中webdriver浏览器驱动 调用时间模块''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie浏览器驱动调用方法 #driver = webdriver.Chrome()#谷歌浏览器驱动调用方法 driver.get("https://www.baidu.com") time.sleep(3) #在输入框中搜索“知乎” driver.find_element_by_id("kw").sendkey("知乎") #点击“百度一下”按钮进行搜索 driver.find_element_by_id("su").click #等待3S time.sleep(3) #点击下一页按钮 driver.find_element_by_class_name("n") #返回上一页 driver.back() time.sleep(3) #切换到下一页 driver.forward()
七、关闭窗口(根据测试场景的不一样须要进行不一样的操做,driver.quit()能够杀死当前浏览器进程,driver.close()能够关闭当前浏览器窗口)测试
#coding:utf-8 '''utf-8为中文编码格式 调用selenium模块中webdriver浏览器驱动 调用时间模块''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie浏览器驱动调用方法 #driver = webdriver.Chrome()#谷歌浏览器驱动调用方法 driver.get("https://www.baidu.com") time.sleep(3) #关闭浏览器进程 driver.quit() #关闭当前窗口 #driver.close()
八、截图(截图方法为get_screenshot_as_file能够在浏览器中使用截图操做,在括号中须要配置截图地址及文件名称和文件格式。)ui
#coding:utf-8 '''utf-8为中文编码格式 调用selenium模块中webdriver浏览器驱动 调用时间模块''' from selenium import webdriver import time driver = webdriver.Firefox() #driver = webdriver.Ie()#ie浏览器驱动调用方法 #driver = webdriver.Chrome()#谷歌浏览器驱动调用方法 driver.get("https://www.baidu.com") time.sleep(3) driver.get_screenshot_as_file("C\\test\\123.jpg")