调用浏览器,来进行自动化测试,是一个常规操作,或者说针对少量测试用例,可以打开浏览器运行
但是针对大量运行测试用例来说,如果每个测试用例都需要调用一次 浏览器,那么无疑对服务器增加了巨大的压力
那么有没有一个办法,不调用浏览器,让浏览器在后台偷偷工作呢 ?
这个可以有: 用chrome-headless
Chrome-headless 模式, Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致。
用法:
option = webdriver.ChormeOptions() option.add_argument('headless')
那么,怎么来实现的呢, 让我们来看一下代码:
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()