CentOS7下无界面使用Selenium+chromedriver进行自动化测试

安装python与pip

python及pip安装请移步:《Linux下使用源码包安装Python》

安装selenium

你可以使用 pip 命令来安装 Selenium:

pip install selenium

 安装过程类似下面这样。

[root@localhost src]# pip install selenium
Collecting selenium
  Downloading https://files.pythonhosted.org/packages/80/d6/4294f0b4bce4de0abf13e17190289f9d0613b0a44e5dd6a7f5ca98459853/selenium-3.141.0-py2.py3-none-any.whl (904kB)
    100% |████████████████████████████████| 911kB 12kB/s 
Requirement already satisfied: urllib3 in /usr/local/python3/lib/python3.7/site-packages (from selenium) (1.24.3)
Installing collected packages: selenium
Successfully installed selenium-3.141.0
You are using pip version 19.0.3, however version 19.1.1 is available.
You should consider upgrading via the 'pip install --upgrade pip' command.

或者,使用 easy_install来安装 Selenium:

easy_install selenium

安装chrome

官方文档:https://intoli.com/blog/installing-google-chrome-on-centos/

添加谷歌官方yum源,在CentOS的 /etc/yum.repos.d/ 目录中新建一个 google-chrome.repo 文件,内容如下:

[google-chrome]
name=google-chrome
baseurl=http://dl.google.com/linux/chrome/rpm/stable/$basearch
enabled=1
gpgcheck=1
gpgkey=https://dl-ssl.google.com/linux/linux_signing_key.pub

执行如下命令进行安装:

sudo yum install google-chrome-stable

 验证不成功的话,使用如下命令:

sudo yum install google-chrome-stable --nogpgcheck        # 安装时忽略GPG验证

 如果遇到下面这种谷歌网站无法访问的情形,可以按照如下设置使用代理上网。

failure: repodata/repomd.xml from google-chrome: [Errno 256] No more mirrors to try.
http://dl.google.com/linux/chrome/rpm/stable/x86_64/repodata/repomd.xml: [Errno 14] curl#6 - "Could not resolve host: dl.google.com; Unknown error"

编辑 /etc/yum.conf ,配置 yum 代理,在文件末尾增加以下内容:

proxy=http://124.156.182.201:80
# 如果需要连接认证,添加以下配置
#proxy_username=代理服务器用户名 
#proxy_password=代理服务器密码

编辑 /etc/profile ,为系统设置全局代理,增加如下环境变量:

export http_proxy=http://124.156.182.201:80
export https_proxy=http://124.156.182.201:80

保存配置,并执行如下命令使环境变量立即生效:

source /etc/profile

使用上述方法,默认会安装最新版本的chrome,如果想重装其他的版本,可以下载相应版本chrome的rpm包来安装。

[root@localhost src]# rpm -qa | grep chrome # 查看当前安装的chrome版本
google-chrome-stable-75.0.3770.90-1pclos2019.x86_64
[root@localhost src]# rpm -e google-chrome-stable-75.0.3770.90-1pclos2019.x86_64  # 卸载当前安装的chrome版本
[root@localhost src]# rpm -ivh google-chrome-58.0.3029.110_x86_64.rpm  # 重新安装chrome

下载chromedriver

使用如下命令查看你安装的chrome版本:

[root@localhost /]# google-chrome --version
Google Chrome 75.0.3770.90

chromedriver与chrome版本对应关系见下表:

chromedriver版本

支持的chrome版本

v2.43

v69-71

v2.42

v68-70

v2.41

v67-69

v2.40

v66-68

v2.39

v66-68

v2.38

v65-67

v2.37

v64-66

v2.36

v63-65

v2.35

v62-64

v2.34

v61-63

v2.33

v60-62

v2.32

v59-61

v2.31

v58-60

v2.30

v58-60

各版本chromedriver下载地址:

http://chromedriver.storage.googleapis.com/index.html

http://npm.taobao.org/mirrors/chromedriver/

在下载地址中找到与你的chrome对应的chromedriver 版本并下载、解压:

wget http://chromedriver.storage.googleapis.com/75.0.3770.90/chromedriver_linux64.zip
unzip chromedriver_linux64.zip

将下载好的chromedriver 放到python脚本同级目录方便调用,并修改读写权限:

chmod 755 chromedriver

代码测试

创建一个 test.py 文件,内容如下:

# -*- coding: utf-8 -*-

from selenium import webdriver

print("开始爬取")
# 创建chrome参数对象
options = webdriver.ChromeOptions()
options.add_argument('--no-sandbox') # 解决DevToolsActivePort文件不存在的报错
options.add_argument('window-size=1600x900') # 指定浏览器分辨率
options.add_argument('--disable-gpu') # 谷歌文档提到需要加上这个属性来规避bug
options.add_argument('--hide-scrollbars') # 隐藏滚动条, 应对一些特殊页面
options.add_argument('blink-settings=imagesEnabled=false') # 不加载图片, 提升速度
options.add_argument('--headless') # 浏览器不提供可视化页面. linux下如果系统不支持可视化不加这条会启动失败

brower = webdriver.Chrome(options=options,executable_path='./chromedriver')

brower.get('http://www.baidu.com')
print(brower.title)
# print(brower.page_source)
brower.quit()
print("爬取完成")

命令行执行 python test.py ,启动脚本,输出如下内容则证明Selenium+chromedriver安装成功:

[root@localhost python_projects]# python3 test.py 
开始爬取
百度一下,你就知道
爬取完成

参考文章

https://blog.csdn.net/weixin_40476348/article/details/85992293

https://www.cnblogs.com/maikatsura/p/10565989.html

https://intoli.com/blog/installing-google-chrome-on-centos/

https://www.cnblogs.com/zouke1220/p/9326687.html

https://developers.google.com/web/updates/2017/04/headless-chrome 

CentOS 7中,可以使用Selenium和Python来实现UI自动化测试Selenium是一个用于Web应用程序测试的工具,它可以模拟用户在浏览器中的操作,如点击、输入等。以下是在CentOS 7中实现UI自动化测试的步骤: 1. 安装Python和pip:在CentOS 7中,默认已经安装了Python,可以通过以下命令来确认是否已安装: ``` python --version ``` 如果没有安装,可以使用以下命令安装: ``` sudo yum install python ``` 安装完成后,可以使用以下命令来安装pip: ``` sudo yum install epel-release sudo yum install python-pip ``` 2. 安装Selenium使用pip命令来安装Selenium: ``` sudo pip install selenium ``` 3. 安装浏览器驱动:Selenium需要与浏览器进行交互,所以需要安装相应的浏览器驱动。常用的浏览器驱动有Chrome Driver和Gecko Driver(用于Firefox)。选择一个适合你的浏览器版本的驱动,并将其下载到CentOS 7中。 4. 编写测试脚本:使用Python编写测试脚本,通过Selenium来模拟用户操作。以下是一个简单的示例: ```python from selenium import webdriver # 创建浏览器驱动对象 driver = webdriver.Chrome('/path/to/chromedriver') # 打开网页 driver.get('https://www.example.com') # 执行操作,如点击按钮、输入文本等 element = driver.find_element_by_id('button') element.click() # 关闭浏览器 driver.quit() ``` 5. 运行测试脚本:在终端中运行测试脚本: ``` python test_script.py ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值