文章详情

短信预约-IT技能 免费直播动态提醒

请输入下面的图形验证码

提交验证

短信预约提醒成功

Centos 7.6 安装seleniu

2023-01-31 00:35

关注

1. 查看Linux 版本

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

  

2. 安装selemium

2.1 通过pip 安装selenium,先安装pip:

[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

2.3 pip安装selenium

[root@penguin src]# pip install selenium

2.4 卸载Centos自带的Mozilla firefox

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

2.5 下载、解压firefox

[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 

2.6 创建虚拟显示

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

[root@penguin src]#firefox 此处无报错firefox正常启动,如果有错误请在/etc/hosts保证有如下一行:
127.0.0.1   localhost

 

2.8 安装google chrome, 解决root无法运行chrome

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

2.9 下载、配置firefox对应的webdriver--geckodriver

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

2.10 下载配置google chrome对应的webdriver--chromedriver_linux64

 

下载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})

3. 测试

3.1 编写代码测试firefox

#!/usr/bin/env python3

from selenium import webdriver


driver = webdriver.Firefox()
driver.get('http://www.163.com')
print(driver.title)
#driver.quit()

3.2 编写代码测试google chrome

#!/usr/bin/env python3

from selenium import webdriver


driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
print(driver.title)

driver.quit()

  

4. 异常问题解决

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

 

阅读原文内容投诉

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

软考中级精品资料免费领

  • 历年真题答案解析
  • 备考技巧名师总结
  • 高频考点精准押题
  • 2024年上半年信息系统项目管理师第二批次真题及答案解析(完整版)

    难度     813人已做
    查看
  • 【考后总结】2024年5月26日信息系统项目管理师第2批次考情分析

    难度     354人已做
    查看
  • 【考后总结】2024年5月25日信息系统项目管理师第1批次考情分析

    难度     318人已做
    查看
  • 2024年上半年软考高项第一、二批次真题考点汇总(完整版)

    难度     435人已做
    查看
  • 2024年上半年系统架构设计师考试综合知识真题

    难度     224人已做
    查看

相关文章

发现更多好内容

猜你喜欢

AI推送时光机
位置:首页-资讯-后端开发
咦!没有更多了?去看看其它编程学习网 内容吧
首页课程
资料下载
问答资讯