linux版火狐瀏覽器部署詳解
Firefox下載地址
Firefox全歷史版本下載:
http://ftp.mozilla.org/pub/firefox/releases/
Firefox驅動問題下載 https://github.com/mozilla/geckodriver/releases
我本地測試用的驅動版本:geckodriver-v0.30.0-win64.zip
我本地測試用的火狐版本:92.0
我本地測試用的作業系統:centos7
火狐瀏覽器解壓安裝出現的問題
下載火狐版本包,上傳,解壓(tar jxf)執行命令報錯如下:
問題一: [machangwei@xxx ~]$ ./firefox/firefox XPCOMGlueLoad errorfor file /home/machangwei/firefox/libmozgtk.so: libgtk-3.so.0: cannot open shared object file: No such file or directory Couldn't load XPCOM. 問題二: [deployer@xxx firefox]$ ./firefox XPCOMGlueLoad error for file /apps/svr/firefox/libxul.so: libXt.so.6: cannot open shared object file: No such file or directory Couldn't load XPCOM.
問題復現及解決
問題一復現及解決:
問題一缺少gtk3,執行如下命令解決
yum install -y gtk3
如果還不行,把gtk2也裝上,回頭補充詳情
問題二復現及解決:
移除libXt檔案,問題復現,重新yum安裝,問題解決
[root@localhost ~]# ./firefox/firefox >/dev/null 2>&1 & [1] 9310 [root@localhost ~]# ps -ef|grep firefox root 9310 9294 48 09:13 pts/6 00:00:11 ./firefox/firefox root9437 9310 9 09:13 pts/6 00:00:01 /root/firefox/firefox-bin -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 248973 -jsInit 285716 -parentBuildID 20210901125518 -appdir /root/firefox/browser 9310 true tab root 9488 9310 6 09:13 pts/6 00:00:00 /root/firefox/firefox-bin -contentproc -childID 2 -isForBrowser -prefsLen 160 -prefMapSize 248973 -jsInit 285716 -parentBuildID 20210901125518 -appdir /root/firefox/browser 9310 true tab root 9524 9310 6 09:13 pts/6 00:00:00 /root/firefox/firefox-bin -contentproc -childID 4 -isForBrowser -prefsLen 5583 -prefMapSize 248973 -jsInit 285716 -parentBuildID 20210901125518 -appdir /root/firefox/browser 9310 true tab root 9541 9294 0 09:13 pts/6 00:00:00 grep --color=auto firefox [root@localhost ~]# rpm -qa|grep libXt libXtst-1.2.3-1.el7.x86_64 libXt-1.1.5-3.el7.x86_64 yum remove libXt-1.1.5-3.el7.x86_64 Removed: libXt.x86_64 0:1.1.5-3.el7 Dependency Removed: dbus-x11.x86_64 1:1.10.24-15.el7 firefox.x86_64 0:78.14.0-1.el7.centos libXaw.x86_64 0:1.0.13-4.el7 libXmu.x86_64 0:1.1.2-2.el7 xorg-x11-server-utils.x86_64 0:7.7-20.el7 xorg-x11-xauth.x86_64 1:1.0.9-1.el7 xorg-x11-xinit.x86_64 0:1.3.4-2.el7 xterm.x86_64 0:295-3.el7_9.1 [root@localhost ~]# ./firefox/firefox XPCOMGlueLoad error for file /root/firefox/libxul.so: libXt.so.6: cannot open shared object file: No such file or directory Couldn't load XPCOM. [root@localhost ~]# yum install -y libXt-1.1.5-3.el7.x86_64 Running transaction Installing : libXt-1.1.5-3.el7.x86_64 1/1 Verifying : libXt-1.1.5-3.el7.x86_64 1/1 Installed: libXt.x86_64 0:1.1.5-3.el7 [root@localhost ~]# ./firefox/firefox Error: no DISPLAY environment variable specified [root@localhost ~]# yum install -y xorg-x11-server-utils.x86_64 xorg-x11-xinit.x86_64 Installed: xorg-x11-server-utils.x86_64 0:7.7-20.el7 xorg-x11-xinit.x86_64 0:1.3.4-2.el7 Dependency Installed: libXmu.x86_64 0:1.1.2-2.el7 xorg-x11-xauth.x86_64 1:1.0.9-1.el7 [root@localhost ~]# ./firefox/firefox Error: no DISPLAY environment variable specified [root@localhost ~]# eval `dbus-launch --sh-syntax` -bash: dbus-launch: command not found [root@localhost ~]# yum install -y dbus-x11.x86_64 [root@localhost ~]# eval `dbus-launch --sh-syntax` [root@localhost ~]# ./firefox/firefox Error: no DISPLAY environment variable specified
重新開啟一個會話視窗,成功啟動程序
[root@localhost ~]# ./firefox/firefox >/dev/null 2>&1 & [1] 2333 [root@localhost ~]# ps -ef|grep firefox root 2333 1891 22 10:40 pts/2 00:00:04 ./firefox/firefox root 2484 2333 6 10:40 pts/2 00:00:01 /root/firefox/firefox-bin -contentproc -childID 1 -isForBrowser -prefsLen 1 -prefMapSize 249090 -jsInit 285716 -parentBuildID 20210901125518 -appdir /root/firefox/browser 2333 true tab root 2536 2333 0 10:40 pts/2 00:00:00 /root/firefox/firefox-bin -contentproc -childID 2 -isForBrowser -prefsLen 96 -prefMapSize 249090 -jsInit 285716 -parentBuildID 20210901125518 -appdir /root/firefox/browser 2333 true tab root 2601 2333 5 10:40 pts/2 00:00:00 /root/firefox/firefox-bin -contentproc -childID 4 -isForBrowser -prefsLen 5590 -prefMapSize 249090 -jsInit 285716 -parentBuildID 20210901125518 -appdir /root/firefox/browser 2333 true tab root 2665 2333 2 10:40 pts/2 00:00:00 /root/firefox/firefox-bin -contentproc -parentBuildID 20210901125518 -prefsLen 5590 -prefMapSize 249090 -appdir /root/firefox/browser 2333 true rdd root 2718 1891 0 10:40 pts/2 00:00:00 grep --color=auto firefox
需要安裝的libXt依賴包總結:
libXt.x86_64 dbus-x11.x86_64 firefox.x86_64 libXaw.x86_64 libXmu.x86_64
xorg-x11-server-utils.x86_64 xorg-x11-xauth xorg-x11-xinit.x86_64 xterm.x86_64
[machangwei@aocxxx ~]$ rpm -qa|grep "libXt|dbus-x11|libXaw|libXmu|xorg-x11-server-utils|xorg-x11-xauth|xorg-x11-xinit|xterm"
[machangwei@aocxxx ~]$
firefox
問題3解決亂碼:
Centos Firefox中文亂碼(對Centos7/8都有效) yum -y groupinstall Fonts 馬上生效。 檢視是否安裝成功
下載依賴包到本地:
yum install --downloadonly --downloaddir=/root/mcw/prob1 libXt dbus-x11 libXaw libXmu dbus-x11 xorg-x11-server-utils xorg-x11-xauth xorg-x11-xinit xterm
yum groupinstall --downloadonly --downloaddir=/root/mcw/language Fonts
功能測試
windows上開啟linux版瀏覽器測試,正常訪問
windows上啟用linux版火狐,需要安裝圖形化介面,安裝xmanger,xshell啟用xmanager
linux火狐能正常訪問
python程式測試火狐瀏覽器是否能正常使用
from selenium.webdriver.chrome.options import Options from time import sleep from selenium import webdriver # 建立一個引數物件,用來控制chrome以無介面模式開啟 chrome_options = Options() chrome_options.add_argument('--headless') chrome_options.add_argument('--disable-gpu') options.add_argument(’–headless’) options.add_argument(’--no-sandbox’) options.add_argument(’--disable-dev-shm-usage’)#例項化一個瀏覽器物件 bro = webdriver.Chrome(executable_path=r'/root/chrome/chromedriver',chrome_options=chrome_options) bro.get('https://www.baidu.com') sleep(2) bro.save_screenshot('1.png') print(bro.page_source) sleep(2) bro.quit()
執行程式,成功截圖訪問百度的頁面
啟動Linux版火狐瀏覽器,需要使用xmanger連線(4a登入的主機無法使用xmanager連線),支援圖形化介面才能啟動成功,並且在自己筆記本上開啟圖形化的linux火狐瀏覽器。
之前進入了一個誤區,安裝了軟體就需要啟動。自動化測試只需要使用無頭瀏覽器來呼叫火狐,啟動火狐程序。所以無需安裝圖形化介面等,只需要解決火狐的缺少的庫檔案,中文字元之類的問題,就可以使用程式測試是否能正常使用瀏覽器。
文件整理不全,可參考筆記資訊:
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
yum install -y http://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm
#wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
#rpm -Uvh epel-release--.noarch.rpm
http://archives.fedoraproject.org/pub/archive/epel/
https://npm.taobao.org/mirrors/chromium-browser-snapshots/Win_x64/884014/
https://download.csdn.net/download/qq_40949759/11593946
啟動命令,火狐啟動後出來火狐瀏覽器中文亂碼
./firefox/firefox >/dev/null 2>&1 &
/opt/google/chrome/google-chrome --disable-setuid-sandbox --user-data-dir --no-sandbox
/opt/google/chrome/google-chrome --disable-setuid-sandbox --user-data-dir --no-sandbox >/dev/null 2>&1 &
說明dbus沒有建立,要安裝必要的工具:
# apt-get install dbus-x11
執行 dbus-launch :
# dbus-launch
1.啟動Chrome
/usr/bin/google-chrome
會報錯:
[31560:31560:0207/085601.085852:ERROR:zygote_host_impl_linux.cc(90)] Running as root without --no-sandbox is not supported. See https://crbug.com/638180.
修改 /usr/bin/google-chrome檔案
將 exec -a "$0" "$HERE/chrome" "$@" 改為
exec -a "$0" "$HERE/chrome" "$@" --user-data-dir --no-sandbox
就可以直接啟動了
Ubuntu
連結:https://www.jianshu.com/p/ea9a1a4ab95c
xmanager使用
https://blog.csdn.net/yongwan5637/article/details/84060709
xmanager安裝
https://www.xshellcn.com/xiazai.html
啟動程式
https://blog.csdn.net/longgeaisisi/article/details/90519690
安裝x11
https://blog.csdn.net/h106140873/article/details/107135811
安裝xterm,xterm出來小視窗
https://www.jianshu.com/p/23ba123ee874
2.在伺服器端vi /etc/ssh/sshd_config,新增一行:需要root,不確定是否開啟了的
X11Forwarding yes
dbus命令沒有
dbus-x11 yum安裝
centos6的源
https://developer.aliyun.com/mirror/
epel 6的源
http://archives.fedoraproject.org/pub/archive/epel/
yum install -y https://mirrors.aliyun.com/epel/epel-release-latest-8.noarch.rpm
yum install -y http://archives.fedoraproject.org/pub/archive/epel/6/x86_64/epel-release-6-8.noarch.rpm