Centos 7.6 安装selenium+firefox+google chrome(支持xshell运行)

匿名 (未验证) 提交于 2019-12-02 22:11:45

[root@penguin selenium]# cat /etc/redhat-release  CentOS Linux release 7.6.1810 (Core) 

  

[root@penguin selenium]#yum -y install epel-release
[root@penguin selenium]#yum -y install python-pip

2.2 如果提示pip更新则执行如下命令:

[root@penguin selenium]#pip install --upgrade pip 

[root@penguin src]# pip install selenium 

 mv /etc/firefox/ /etc/firefox.bak  mv /usr/lib64/firefox/ /usr/lib64/firefox.bak  mv /usr/bin/firefox /usr/bin/firefox.old 

[root@penguin src]# ls -l /usr/local/src/firefox-66.0.3.tar.bz2  -rw-r--r-- 1 root root 62089056 Apr 30 16:47 /usr/local/src/firefox-66.0.3.tar.bz2
[root@penguin src]#tar xjvf firefox-66.0.3.tar.bz2 

yum install Xvfb libXfont xorg-x11-fonts* pip3 install  pyvirtualdisplay

2.7 新建符号链接,测试firefox用xshell启动

[root@penguin src]#cd firefox/
[root@penguin src]#ln -s /usr/lib64/firefox/firefox /usr/bin/firefox

[root@penguin selenium]# firefox -version
Mozilla Firefox 66.0.3

 

 

yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm

[root@penguin selenium]# google-chrome -version
Google Chrome 74.0.3729.108

解决root无法运行chrome

vi /usr/bin/google-chrome

在文件尾部添加:
if [[ -n "$CHROME_USER_DATA_DIR" ]]; then   # Note: exec -a below is a bashism.   exec -a "$0" "$HERE/chrome"  \     --user-data-dir="$CHROME_USER_DATA_DIR" "$@" else   exec -a "$0" "$HERE/chrome"  --user-data-dir="/root/.config/google-chrome/"  \     "$@" --no-sandbox fi 

cd /usr/local/src/ tar xzvf geckodriver-v0.24.0-linux64.tar.gz cp /usr/local/bin/geckodriver /usr/bin/geckodriver 

下载chromedriver_linux64.zip

解压,配置如下:

cp /usr/local/src/chromedriver_linux64/chromedriver /usr/bin/

root@penguin selenium]# chromedriver -version
ChromeDriver 74.0.3729.6 (255758eccf3d244491b8a1317aa76e1ce10d57e9-refs/branch-heads/3729@{#29})

#!/usr/bin/env python3  from selenium import webdriver   driver = webdriver.Firefox() driver.get('http://www.163.com') print(driver.title) #driver.quit() 

#!/usr/bin/env python3  from selenium import webdriver   driver = webdriver.Chrome() driver.get('https://www.baidu.com') print(driver.title)  driver.quit() 

  

firefox:

File "/root/.pyenv/versions/3.6.4/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 174, in __init__     keep_alive=True)   File "/root/.pyenv/versions/3.6.4/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 157, in __init__     self.start_session(capabilities, browser_profile)   File "/root/.pyenv/versions/3.6.4/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 252, in start_session     response = self.execute(Command.NEW_SESSION, parameters)   File "/root/.pyenv/versions/3.6.4/lib/python3.6/site-packages/selenium/webdriver/remote/webdriver.py", line 321, in execute     self.error_handler.check_response(response)   File "/root/.pyenv/versions/3.6.4/lib/python3.6/site-packages/selenium/webdriver/remote/errorhandler.py", line 242, in check_response     raise exception_class(message, screen, stacktrace) selenium.common.exceptions.SessionNotCreatedException: Message: Unable to find a matching set of capabilities 

  webdriver与firefox版本不匹配,可以查找对应的webdriver版本解决

Traceback (most recent call last):   File "./test.py", line 8, in <module>     driver = webdriver.Firefox()     File "/root/.pyenv/versions/3.6.4/lib/python3.6/site-packages/selenium/webdriver/firefox/webdriver.py", line 164, in __init__     self.service.start()   File "/root/.pyenv/versions/3.6.4/lib/python3.6/site-packages/selenium/webdriver/common/service.py", line 104, in start     raise WebDriverException("Can not connect to the Service %s" % self.path) selenium.common.exceptions.WebDriverException: Message: Can not connect to the Service geckodriver 

  卸载系统自带的firefox,重新安装并设置为root可以启动,同时参考步骤2.7/etc/hosts的设置

chrome:

主要问题由root不能启动google-chrome导致,配置no-sandbox选项即可,具体参考步骤2.8

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!