Chrome headless 模式

我们在通过Selenium运行自动化测试时,必须要启动浏览器,浏览器的启动与关闭必然会影响执行效率,而且还会干扰你做其它事情(本机运行的话)。

那能不能把自动化测试的运行放在后台?当然可以!

  • htmlunit 项目可以模拟浏览器运行,是一个没有界面的浏览器,运行速度快。
  • PhantomJS 是一个基于webkit的JavaScript API。它使用QtWebKit作为它核心浏览器的功能,使用webkit来编译解释执行JavaScript代码。任何你可以在基于webkit浏览器做的事情,它都能做到。
  • Chrome-headless 模式,Google 自己出的无头浏览器模式。

htmlunit 在Selenium 下面,我都没跑通过一个 baidu 的 demo, 因为它不打开 UI 界面,所以,你也不知道它后台是如何渲染页面的。 弃之!

PhantomJS 非常不错,因为是使用的 QtWebKit 浏览器内核渲染页面,基本可以和真正浏览器保持一致。

Chrome-headless 模式, Google 针对 Chrome 浏览器 59版 新增加的一种模式,可以让你不打开UI界面的情况下使用 Chrome 浏览器,所以运行效果与 Chrome 保持完美一致。PhantomJS作者表示,你这么搞我失业了啊!

用法

Python Selenium 用法:

from selenium import webdriver
from selenium.webdriver.chrome.options import Options

chrome_options = Options()
chrome_options.add_argument(‘--headless‘)
driver = webdriver.Chrome(chrome_options=chrome_options)

...

Java Selenium用法:

import org.openqa.selenium.WebDriver;
import org.openqa.selenium.chrome.ChromeDriver;
import org.openqa.selenium.chrome.ChromeOptions;

public class WebTest {

    public static void main(String[] args) throws InterruptedException {

        ChromeOptions chromeOptions = new ChromeOptions();
        chromeOptions.addArguments("--headless");
        WebDriver driver = new ChromeDriver(chromeOptions);

        ...

    }
}
时间: 2024-10-11 10:12:20

Chrome headless 模式的相关文章

chrome浏览器爬虫WebDriverException解决采用python + selenium + chrome + headless模式

WebDriverException: Message: unknown error: Chrome failed to start: crashed 1. 背景在使用selenium + chrome浏览器渲染模式爬取数据时,如果并发任务过多,或者爬虫的运行时间很长,那么很容易出现浏览器崩溃的现象,如下: 这一般是资源消耗过大造成的(据说chrome浏览器有内存泄漏的情况).那如何解决这个问题呢? 这种情况下,我们首先就会想到使用无界面的浏览器PhantomJS,但是PhantomJS现在年久

Python 爬虫杂记 - Chrome Headless

Chrome Headless使用 测试 Chrome 版本: 62.0.3202.89(正式版本)(64 位) Python环境:python2.7 注: Headless模式需要59版本及以上! Chrome的安装与配置不在此赘述, 不过需要注意的是: 版本号与驱动的映射关系! 版本号与驱动的映射关系!! 版本号与驱动的映射关系!!! Chrome与Chromedriver的映射关系表: Chromedriver下载链接:http://chromedriver.storage.googlea

chrome headless Manual 模式渲染网页

可以看看这个里面的介绍,写得很好.https://duo.com/blog/driving-headless-chrome-with-python from selenium import webdriver from selenium.webdriver.chrome.options import Options` chrome_options = Options() chrome_options.add_argument("--headless") ##需要加上,否则会弹出真实浏览

反爬虫——使用chrome headless时一些需要注意的细节

以前我们介绍过chrome headless的用法(https://www.cnblogs.com/apocelipes/p/9264673.html). 今天我们要稍微提一下其中一个细节. 反爬和window.navigator对象 navigator对象,一个对大家来说既熟悉又陌生的名词,熟悉是因为在学BOM对象的时候或多或少都见过甚至在代码中使用过,陌生是因为对于navigator对象来说虽然各大浏览器都有实现却一直没有一个统一的标准,所以在不同浏览器上的navigator对象也可能是不一

使用HTML5 -Canvas追踪用户,Chrome隐身模式阵亡

中国的一些精准营销公司又要偷着乐了= =从之前追踪Cookie到后面追踪FlashCookie,某些商家总在永无止境的追踪用户行为甚至是隐私,将其转化为所谓的“商业价值”.我们被迫面临“世风日下.道德沦亡”之窘境,不过笔者后来又释怀了,反正在中国上网本来就没有隐私嘛.毕竟国家机器还在合法工作呢...... 话说回来,HTML5-Canvas追踪用户的核心原理其实就是一句话:在绘制canvas图片时,同样的canvas绘制代码,不同机器和浏览器绘制的图片特征是相同并且独一无二的,这样以来,提取最简

Xtext Headless模式代码生成

Xtext Xtext是eclipse下用于构建DSL的工具.其使用非常方便,除了支持开发DSL以外,还能得到eclipse语法高亮.错误提示等功能.http://www.eclipse.org/Xtext/index.html 建议先读读官方文档里面的最开始的几个tutorial,对Xtext的使用有个大概的了解.http://www.eclipse.org/Xtext/documentation.html#FirstFiveMinutes Headless模式下代码生成 一般情况下,我们编写

chrome headless 无头浏览器 应用

1. 根据html生成pdf chrome.exe --headless --disable-gpu --print-to-pdf ...../index.html 2. puppeteer --- nodejs chrome headless 操作库(文档) 这个库可以在nodejs实现 绝大部分的浏览器动作,截图.爬虫..... 具体代码看官方文档,十分详尽 原文地址:https://www.cnblogs.com/amiezhang/p/10405404.html

selenium chrome headless无界面引擎

注意:PhantomJS已被舍弃 chrome headless 在打开浏览器之前添加参数 import time import sys from selenium import webdriver from selenium.webdriver.common.keys import Keys from selenium.webdriver.chrome.options import Options # if __name__ == '__main__': keyword = 'iphone'

python Chrome 开发者模式消失的方法

最近使用 Chrome浏览器跑Selenium Python 自动化脚本运行过程中,总是出现这样的对话框  出现这样的对话框,如果不能自动关闭,这个对话框会影响web端页面的其他链接的定位识别,这样就会导致该脚本就没法正常完成. 想过多种方法,如何关闭开发者模式等方法,在本地的时候,已经手动关闭了开发者模式,但是在运行脚本的过程中,该对话框一直存在.最后无解,在处理脚本过程中,为了规避这个对话框,我采取的方法是,在输入URL后,就将打开的页面设置最大化,即在适当的位置输入 driver.maxi