本文概述
- 在Ubuntu上安装Chromium
- 在CentOS上安装Chromium
什么是无头Chrome?
无头Chrome就像是在没有UI(浏览器)的情况下运行chrome浏览器一样, 也就是说, 它在无头环境中运行, 这对于运行自动化测试非常有用。
那么, 无头Chrome为我们解锁了什么?
最令人兴奋的事情之一就是能够测试最新和最强大的Web平台功能, 例如ES6模块, 服务工作者和流。借助无头chrome, 你可以编写应用程序并使用最新的渲染功能测试这些应用程序。它解锁的另一件事是这些很棒的功能, 例如网络节流, 设备仿真和代码覆盖。
使用无头chrome, 你甚至无需编写任何代码即可执行测试, 那不是很酷!
你可以仅通过命令行执行它们。以下是一些常用的标志。
--screenshot #to take a screenshot--print-to-pdf #converting webpage to PDF--dump-dom #dump DOM (document object model) data
在Ubuntu上安装Chromium步骤1:更新Ubuntu
首先, 在Ubuntu中更新软件包。
[email
protected]:~$ sudo apt-get updateHit:1 https://download.docker.com/linux/ubuntu bionic InReleaseHit:2 http://security.ubuntu.com/ubuntu cosmic-security InReleaseHit:3 http://ppa.launchpad.net/ansible/ansible/ubuntu cosmic InReleaseHit:5 http://apt.puppetlabs.com bionic InReleaseIgn:6 http://pkg.jenkins.io/debian-stable binary/ InReleaseHit:7 http://us.archive.ubuntu.com/ubuntu cosmic InReleaseHit:8 http://ppa.launchpad.net/canonical-chromium-builds/stage/ubuntu cosmic InReleaseHit:9 http://pkg.jenkins.io/debian-stable binary/ ReleaseHit:10 http://us.archive.ubuntu.com/ubuntu cosmic-updates InReleaseHit:11 http://us.archive.ubuntu.com/ubuntu cosmic-backports InReleaseHit:4 https://packages.cloud.google.com/apt kubernetes-xenial InReleaseReading package lists... Done
步骤2:安装依赖项
【如何在Ubuntu和CentOS上安装Chromium()】安装安装所需的这些依赖项。
[email
protected]:~$ sudo apt-get install -y libappindicator1 fonts-liberationReading package lists... DoneBuilding dependency treeReading state information... Donefonts-liberation is already the newest version (1:1.07.4-7).fonts-liberation set to manually installed.The following package was automatically installed and is no longer required:chromium-codecs-ffmpeg-extraUse 'sudo apt autoremove' to remove it.The following additional packages will be installed:libdbusmenu-gtk4 libindicator7Suggested packages:indicator-applicationThe following NEW packages will be installed:libappindicator1 libdbusmenu-gtk4 libindicator70 upgraded, 3 newly installed, 0 to remove and 238 not upgraded.Need to get 68.2 kB of archives.After this operation, 280 kB of additional disk space will be used.Get:1 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 libdbusmenu-gtk4 amd64 16.04.1+18.10.20180917-0ubuntu1 [27.1 kB]Get:2 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 libindicator7 amd64 16.10.0+18.04.20180321.1-0ubuntu1 [21.7 kB]Get:3 http://us.archive.ubuntu.com/ubuntu cosmic/universe amd64 libappindicator1 amd64 12.10.1+18.04.20180322.1-0ubuntu1 [19.4 kB]Fetched 68.2 kB in 1s (61.1 kB/s)Selecting previously unselected package libdbusmenu-gtk4:amd64.(Reading database ... 318270 files and directories currently installed.)Preparing to unpack .../libdbusmenu-gtk4_16.04.1+18.10.20180917-0ubuntu1_amd64.deb ...Unpacking libdbusmenu-gtk4:amd64 (16.04.1+18.10.20180917-0ubuntu1) ...Selecting previously unselected package libindicator7.Preparing to unpack .../libindicator7_16.10.0+18.04.20180321.1-0ubuntu1_amd64.deb ...Unpacking libindicator7 (16.10.0+18.04.20180321.1-0ubuntu1) ...Selecting previously unselected package libappindicator1.Preparing to unpack .../libappindicator1_12.10.1+18.04.20180322.1-0ubuntu1_amd64.deb ...Unpacking libappindicator1 (12.10.1+18.04.20180322.1-0ubuntu1) ...Setting up libindicator7 (16.10.0+18.04.20180321.1-0ubuntu1) ...Setting up libdbusmenu-gtk4:amd64 (16.04.1+18.10.20180917-0ubuntu1) ...Processing triggers for libc-bin (2.28-0ubuntu1) ...Setting up libappindicator1 (12.10.1+18.04.20180322.1-0ubuntu1) ...Processing triggers for libc-bin (2.28-0ubuntu1) ...libappindicator1: This library is used to export menu by an application into a panelfonts-liberation: This library has similar font metrics as Arial, Times and Courier
在某些情况下, 安装chrome可能会缺少一些依赖项。因此, 运行以下命令, 它将安装安装Chrome所需的所有缺少的依赖项。
[email
protected]:~$ sudo apt-get install -fThe following additional packages will be installed:at-spi2-core cpp cpp-7 dconf-gsettings-backend dconf-service gcc-7-base glib-networking glib-networking-commonglib-networking-services gsettings-desktop-schemas libappindicator3-1 libasound2 libasound2-data libatk-bridge2.0-0libatspi2.0-0 libauthen-sasl-perl libcairo-gobject2 libcolord2 libdata-dump-perl libdbusmenu-gtk3-4 libdconf1libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libencode-locale-perl libepoxy0 libfile-basedir-perllibfile-desktopentry-perl libfile-listing-perl libfile-mimeinfo-perl libfont-afm-perl libfontenc1 libgl1libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libgtk-3-0 libgtk-3-bin libgtk-3-commonlibhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perllibhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libice6 libindicator3-7libio-html-perl libio-socket-ssl-perl libipc-system-simple-perl libisl19 libjson-glib-1.0-0 libjson-glib-1.0-commonliblcms2-2 libllvm9 liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmpc3 libnet-dbus-perllibnet-http-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnspr4 libnss3 libpciaccess0 libproxy1v5 librest-0.7-0libsensors4 libsm6 libsoup-gnome2.4-1 libsoup2.4-1 libtie-ixhash-perl libtimedate-perl libtry-tiny-perl liburi-perllibwayland-client0 libwayland-cursor0 libwayland-egl1 libwww-perl libwww-robotrules-perl libx11-protocol-perllibx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxft2libxkbcommon0 libxml-parser-perl libxml-twig-perl libxml-xpathengine-perl libxmu6 libxpm4 libxshmfence1 libxss1 libxt6libxtst6 libxv1 libxxf86dga1 libxxf86vm1 perl-openssl-defaults x11-common x11-utils x11-xserver-utils xdg-utilsSuggested packages:cpp-doc gcc-7-locales indicator-application libasound2-plugins alsa-utils libdigest-hmac-perl libgssapi-perl colordgvfs liblcms2-utils libcrypt-ssleay-perl lm-sensors libauthen-ntlm-perl libunicode-map8-perl libunicode-string-perlxml-twig-tools mesa-utils nickle cairo-5c xorg-docs-coreThe following NEW packages will be installed:at-spi2-core cpp cpp-7 dconf-gsettings-backend dconf-service gcc-7-base glib-networking glib-networking-commonglib-networking-services gsettings-desktop-schemas libappindicator3-1 libasound2 libasound2-data libatk-bridge2.0-0libatspi2.0-0 libauthen-sasl-perl libcairo-gobject2 libcolord2 libdata-dump-perl libdbusmenu-gtk3-4 libdconf1libdrm-amdgpu1 libdrm-intel1 libdrm-nouveau2 libdrm-radeon1 libencode-locale-perl libepoxy0 libfile-basedir-perllibfile-desktopentry-perl libfile-listing-perl libfile-mimeinfo-perl libfont-afm-perl libfontenc1 libgl1libgl1-mesa-dri libgl1-mesa-glx libglapi-mesa libglvnd0 libglx-mesa0 libglx0 libgtk-3-0 libgtk-3-bin libgtk-3-commonlibhtml-form-perl libhtml-format-perl libhtml-parser-perl libhtml-tagset-perl libhtml-tree-perl libhttp-cookies-perllibhttp-daemon-perl libhttp-date-perl libhttp-message-perl libhttp-negotiate-perl libice6 libindicator3-7libio-html-perl libio-socket-ssl-perl libipc-system-simple-perl libisl19 libjson-glib-1.0-0 libjson-glib-1.0-commonliblcms2-2 libllvm9 liblwp-mediatypes-perl liblwp-protocol-https-perl libmailtools-perl libmpc3 libnet-dbus-perllibnet-http-perl libnet-smtp-ssl-perl libnet-ssleay-perl libnspr4 libnss3 libpciaccess0 libproxy1v5 librest-0.7-0libsensors4 libsm6 libsoup-gnome2.4-1 libsoup2.4-1 libtie-ixhash-perl libtimedate-perl libtry-tiny-perl liburi-perllibwayland-client0 libwayland-cursor0 libwayland-egl1 libwww-perl libwww-robotrules-perl libx11-protocol-perllibx11-xcb1 libxaw7 libxcb-dri2-0 libxcb-dri3-0 libxcb-glx0 libxcb-present0 libxcb-shape0 libxcb-sync1 libxft2libxkbcommon0 libxml-parser-perl libxml-twig-perl libxml-xpathengine-perl libxmu6 libxpm4 libxshmfence1 libxss1 libxt6libxtst6 libxv1 libxxf86dga1 libxxf86vm1 perl-openssl-defaults x11-common x11-utils x11-xserver-utils xdg-utils0 upgraded, 117 newly installed, 0 to remove and 58 not upgraded.1 not fully installed or removed.Need to get 40.7 MB of archives.After this operation, 369 MB of additional disk space will be used.Do you want to continue? [Y/n] YFetched 40.7 MB in 4s (9470 kB/s)Extracting templates from packages: 100%
步骤3:下载Chrome
下载适用于Ubuntu系统的谷歌浏览器稳定包。
[email
protected]:~$ wget https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.deb--2020-01-15 13:58:41-- https://dl.google.com/linux/direct/google-chrome-stable_current_amd64.debResolving dl.google.com (dl.google.com)... 172.217.163.78, 2404:6800:4007:80c::200eConnecting to dl.google.com (dl.google.com)|172.217.163.78|:443... connected.HTTP request sent, awaiting response... 200 OKLength: 62204098 (59M) [application/x-debian-package]Saving to: ‘google-chrome-stable_current_amd64.deb’google-chrome-stable_current_amd64. 100%[=================================================================>
] 59.32M 11.1MB/s in 29s2020-01-15 13:59:10 (2.04 MB/s) - ‘google-chrome-stable_current_amd64.deb’ saved [62204098/62204098]
步骤4:安装Chrome
安装稳定的软件包。
[email
protected]:~$ sudo dpkg -i google-chrome*.debSelecting previously unselected package google-chrome-stable.(Reading database ... 318285 files and directories currently installed.)Preparing to unpack google-chrome-stable_current_amd64.deb ...Unpacking google-chrome-stable (79.0.3945.117-1) ...Setting up google-chrome-stable (79.0.3945.117-1) ...update-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/x-www-browser (x-www-browser) in auto modeupdate-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/gnome-www-browser (gnome-www-browser) in auto modeupdate-alternatives: using /usr/bin/google-chrome-stable to provide /usr/bin/google-chrome (google-chrome) in auto modeProcessing triggers for gnome-menus (3.13.3-11ubuntu2) ...Processing triggers for desktop-file-utils (0.23-3ubuntu2) ...Processing triggers for mime-support (3.60ubuntu1) ...Processing triggers for man-db (2.8.4-2) ...
步骤5:检查Chrome版本
要确认安装成功完成, 请检查Google Chrome版本。
[email
protected]:~$ google-chrome-stable -versionGoogle Chrome 79.0.3945.117
可选:无头运行Chrome
让我向你展示在无头模式下运行chrome的示例。
我将以无头模式运行chrome, 并且https://gf.dev/的所有内容都将另存为pdf文件。
[email
protected]:~$ google-chrome-stable --headless --disable-gpu --print-to-pdf https://gf.dev/[0115/140930.772108:INFO:headless_shell.cc(620)] Written to file output.pdf.
你可以看到一个文件output.pdf
[email
protected]:~$ ls -l out*-rw------- 1 geekflare geekflare 80799 Jan 15 14:09 output.pdf[email
protected]:~$
接下来, 我将向你展示如何在CentOS系统中进行相同的设置。
在CentOS上安装Chromium步骤1:更新CentOS
使用以下命令更新CentOS系统。
[[email
protected] ~]$ sudo yum update
步骤2:建立Chrome存放区
将google chrome存储库添加到系统。在/etc/yum.repos.d/中创建一个文件google-chrome.repo, 并在下面添加详细信息。
[[email
protected] ~]$ sudo gedit /etc/yum.repos.d/google-chrome.repo[google-chrome]name=google-chromebaseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearchenabled=1gpgcheck=1gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub
步骤3:安装Chrome
运行下面的yum命令在CentOS系统上安装google chrome。
[[email
protected] ~]$ sudo yum install google-chrome-stableLast metadata expiration check: 0:04:04 ago on Wed 22 Jan 2020 01:06:24 PM EST.Dependencies resolved.================================================================================Package Arch Version Repository Size================================================================================Installing:google-chrome-stable x86_64 79.0.3945.130-1 google-chrome 60 MInstalling dependencies:libXScrnSaver x86_64 1.2.3-1.el8 AppStream 31 klibappindicator-gtk3 x86_64 12.10.0-19.el8 AppStream 43 klibdbusmenu x86_64 16.04.0-12.el8 AppStream 140 klibdbusmenu-gtk3 x86_64 16.04.0-12.el8 AppStream 41 klibindicator-gtk3 x86_64 12.10.1-14.el8 AppStream 70 kliberation-fonts noarch 1:2.00.3-4.el8 BaseOS 19 kliberation-serif-fonts noarch 1:2.00.3-4.el8 BaseOS 607 kTransaction Summary================================================================================Install 8 PackagesTotal download size: 60 MInstalled size: 213 MIs this ok [y/N]: yDownloading Packages:(1/8): libXScrnSaver-1.2.3-1.el8.x86_64.rpm 146 kB/s | 31 kB 00:00(2/8): libappindicator-gtk3-12.10.0-19.el8.x86_ 171 kB/s | 43 kB 00:00(3/8): libdbusmenu-gtk3-16.04.0-12.el8.x86_64.r 691 kB/s | 41 kB 00:00(4/8): libindicator-gtk3-12.10.1-14.el8.x86_64. 558 kB/s | 70 kB 00:00(5/8): liberation-fonts-2.00.3-4.el8.noarch.rpm 74 kB/s | 19 kB 00:00(6/8): liberation-serif-fonts-2.00.3-4.el8.noar 1.3 MB/s | 607 kB 00:00(7/8): libdbusmenu-16.04.0-12.el8.x86_64.rpm 121 kB/s | 140 kB 00:01(8/8): google-chrome-stable-79.0.3945.130-1.x86 8.4 MB/s | 60 MB 00:07--------------------------------------------------------------------------------Total 6.5 MB/s | 60 MB 00:09warning: /var/cache/dnf/google-chrome-eb0d6f10ccbdafba/packages/google-chrome-stable-79.0.3945.130-1.x86_64.rpm: Header V4 DSA/SHA1 Signature, key ID 7fac5991: NOKEYgoogle-chrome 49 kB/s | 10 kB 00:00Importing GPG key 0x7FAC5991:Userid : "Google, Inc. Linux Package Signing Key <
[email
protected]>
"Fingerprint: 4CCA 1EAF 950C EE4A B839 76DC A040 830F 7FAC 5991From : https://dl-ssl.google.com/linux/linux_signing_key.pubIs this ok [y/N]: yKey imported successfullyImporting GPG key 0xD38B4796:Userid : "Google Inc. (Linux Packages Signing Authority) <
[email
protected]>
"Fingerprint: EB4C 1BFD 4F04 2F6D DDCC EC91 7721 F63B D38B 4796From : https://dl-ssl.google.com/linux/linux_signing_key.pubIs this ok [y/N]: yKey imported successfullyRunning transaction checkTransaction check succeeded.Running transaction testTransaction test succeeded.Running transactionPreparing : 1/1Installing : libdbusmenu-16.04.0-12.el8.x86_64 1/8Installing : libdbusmenu-gtk3-16.04.0-12.el8.x86_64 2/8Installing : liberation-serif-fonts-1:2.00.3-4.el8.noarch 3/8Installing : liberation-fonts-1:2.00.3-4.el8.noarch 4/8Installing : libindicator-gtk3-12.10.1-14.el8.x86_64 5/8Installing : libappindicator-gtk3-12.10.0-19.el8.x86_64 6/8Installing : libXScrnSaver-1.2.3-1.el8.x86_64 7/8Running scriptlet: google-chrome-stable-79.0.3945.130-1.x86_64 8/8Installing : google-chrome-stable-79.0.3945.130-1.x86_64 8/8Running scriptlet: google-chrome-stable-79.0.3945.130-1.x86_64 8/8Redirecting to /bin/systemctl start atd.serviceVerifying : libXScrnSaver-1.2.3-1.el8.x86_64 1/8Verifying : libappindicator-gtk3-12.10.0-19.el8.x86_64 2/8Verifying : libdbusmenu-16.04.0-12.el8.x86_64 3/8Verifying : libdbusmenu-gtk3-16.04.0-12.el8.x86_64 4/8Verifying : libindicator-gtk3-12.10.1-14.el8.x86_64 5/8Verifying : liberation-fonts-1:2.00.3-4.el8.noarch 6/8Verifying : liberation-serif-fonts-1:2.00.3-4.el8.noarch 7/8Verifying : google-chrome-stable-79.0.3945.130-1.x86_64 8/8Installed:google-chrome-stable-79.0.3945.130-1.x86_64libXScrnSaver-1.2.3-1.el8.x86_64libappindicator-gtk3-12.10.0-19.el8.x86_64libdbusmenu-16.04.0-12.el8.x86_64libdbusmenu-gtk3-16.04.0-12.el8.x86_64libindicator-gtk3-12.10.1-14.el8.x86_64liberation-fonts-1:2.00.3-4.el8.noarchliberation-serif-fonts-1:2.00.3-4.el8.noarchComplete!
步骤4:检查Chrome版本
要确认安装成功完成, 请检查google chrome版本。
[[email
protected] ~]$ google-chrome -versionGoogle Chrome 79.0.3945.130
可选:无头运行Chrome
让我向你展示在CentOS上以无头模式运行chrome的示例。
我将以捕获屏幕快照为例。下面的此命令将在无头模式下运行chrome, 并且https://www.chromestatus.com/的所有内容都将另存为pdf文件。
[[email
protected] ~]$ google-chrome-stable --headless --disable-gpu --print-to-pdf https://www.chromestatus.com/[0122/131602.193881:INFO:headless_shell.cc(620)] Written to file output.pdf.
创建了output.pdf文件, 其中包含https://www.chromestatus.com/的所有内容
[[email
protected] ~]$ ls -ltotal 61208drwxr-xr-x. 2 geekflare geekflare 6 Sep 25 11:49 Desktopdrwxr-xr-x. 2 geekflare geekflare 6 Sep 25 11:49 Documentsdrwxr-xr-x. 2 geekflare geekflare 6 Sep 25 11:49 Downloads-rw-rw-r--. 1 geekflare geekflare 180 Jan 22 13:05 google-chrome.repo-rw-------. 1 geekflare geekflare 146776 Jan 22 13:16 output.pdf
这就是如何在Ubuntu&CentOS上安装Chrome并以无头模式运行它的全部内容。
推荐阅读
- 让你的网站由真实人审核
- 9个AI平台可帮助你创建Facebook Chatbot
- 如何创建发布前的产品着陆页()
- 35多种工具,可帮助将创意转化为产品发布
- 9个惊人的工具可立即查找任何人的电子邮件地址
- 12个出色的工具可为你的企业查找智能域名
- 使用Chatbot在目标网页上进行更多互动
- 自行搭建Android4.4编译环境
- AppBar 自定义顶部导航按钮 图标颜色 以及 TabBar 定义顶部 Tab 切换