web UI自动化之chrome-headless

什么是Headless Chrome?

Headless Chrome 是 Chrome 浏览器的无界面形态,可以在不打开浏览器的前提下,使用所有Chrome支持的特性,在命令行中运行你的脚本。相比于其他浏览器,Headless Chrome 能够更加便捷的运行web自动化测试、编写爬虫、截取图等功能。相比于较早的 PhantomJS,SlimerJS 等,Headless Chrome 则更加贴近浏览器环境。如果你曾用过或者熟悉PhantomJS,那么好,请记住,Headless Chrome 发布就是来代替phantomjs的。

为什么是Headless Chrome

  1. 对于UI自动化测试,少了真实浏览器加载css,js以及渲染页面的工作。无头测试要比真实浏览器快的多。
  2. 可以在无界面的服务器或CI上运行测试,减少了外界的干扰,使自动化测试更稳定。
  3. 在一台机器上可以模拟运行多个无头浏览器,方便进行并发测试
  4. 它爹是Google(自己去联想,最新JS语法支持啥的就不多废话了),且Ariya Hidayat已经放弃对Phantom.js的维护。 相比phantomjs,完成任务快,占用内存少。

来个demo测试下

#!/usr/bin/env python
# -*- coding:utf-8 -*-
from selenium import webdriver
from selenium.webdriver.chrome.options import Options
import datetime

chrome_options = Options()
chrome_options.add_argument("--headless")

base_url = "http://www.baidu.com/"

#对应的chromedriver的放置目录

driver = webdriver.Chrome(executable_path=(r'change to your chromedriver path'), chrome_options=chrome_options)

driver.get(base_url + "/")

start_time=starttime = datetime.datetime.now()
print('this is start_time ',start_time)

driver.find_element_by_id("kw").send_keys("selenium webdriver")
driver.find_element_by_id("su").click()
driver.save_screenshot('screen.png')

driver.close()

end_time=datetime.datetime.now()
print('this is end_time ',end_time)

chromedriver下载地址:http://chromedriver.storage.googleapis.com/index.html

如果相对chrome-headless进一步调研,请移步官网:https://developers.google.cn/web/updates/2017/04/headless-chrome

猜你喜欢

转载自blog.csdn.net/lianyuzhu/article/details/85841932
今日推荐