调用浏览器,来进行自动化测试,是一个常规操做,或者说针对少许测试用例,能够打开浏览器运行html
可是针对大量运行测试用例来讲,若是每一个测试用例都须要调用一次 浏览器,那么无疑对服务器增长了巨大的压力python
那么有没有一个办法,不调用浏览器,让浏览器在后台偷偷工做呢 ?web
这个能够有: 用chrome-headlesschrome
Chrome-headless 模式, Google 针对 Chrome 浏览器 59版 新增长的一种模式,能够让你不打开UI界面的状况下使用 Chrome 浏览器,因此运行效果与 Chrome 保持完美一致。浏览器
用法:服务器
option = webdriver.ChormeOptions() option.add_argument('headless')
那么,怎么来实现的呢, 让咱们来看一下代码:less
from selenium import webdriver import os,time #加载启动项 option = webdriver.ChromeOptions() option.add_argument('headless') #定义截图地址&图片格式 screen_path = os.path.dirname(os.getcwd()) +'/report/Screenshots/' rq = time.strftime('%Y%m%d%H%M', time.localtime(time.time())) screen_name = screen_path + rq + '.png' #打开chrome浏览器 #driver = webdriver.Chrome(chrome_options=option) #版本更新,须要options 代替chrome_option driver = webdriver.Chrome(options = option) #定义url 地址 url = 'http://www.baidu.com' driver.get(url=url) time.sleep(2) #截图 driver.save_screenshot(screen_name) time.sleep(3) #退出并关闭浏览器 driver.quit()