Selenium+python之不打开浏览器,来运行测试用例

调用浏览器,来进行自动化测试,是一个常规操做,或者说针对少许测试用例,能够打开浏览器运行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()