Centos上执行Selenium自动化测试任务

本文详细描述了如何在没有图形用户界面的CentOS服务器上安装Chrome、对应版本的Chromedriver,并配置Selenium进行Python编写的web自动化任务,包括添加参数以实现无头浏览器模式和权限设置。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

任务背景:想在服务器上执行基于python、chromedriver和selenium的web自动化任务,本地电脑安装好python及所需第三方库、下载好chrome以及对应版本的chromedriver后即可运行;类似的,服务器上也是一样。

1、安装chrome

服务器的chrome安装不同于windows,Centos没有GUI,安装即一句命令:

sudo yum install google-chrome-stable  #安装
google-chrome-stable -version  #检查安装是否成功

google-chrome-stable 是 Chrome 浏览器的稳定版本;在大多数 Linux 发行版中,安装 Chrome 浏览器后,可执行文件通常被命名为 google-chrome-stable。(摘自GPT)


2、安装对应的ChromeDriver

所有版本的ChromeDriver都可以在  CFT  找到并下载,Centos数据linux,相应的Chrome版本号为122,所以下载122版本的linux的driver即可:

https://storage.googleapis.com/chrome-for-testing-public/122.0.6168.0/linux64/chromedriver-linux64.zip

下载并通过WinSCP上传到服务器上,我这里是usr/bin目录

给ChromeDriver执行权限

3、修改测试脚本

源代码中的chromedriver使用方法大致如下,因为源码是针对windows等具有GUI的平台,所以这么使用完全没有问题

def run():
    option = webdriver.ChromeOptions()
    driver = webdriver.Chrome(options=option)
........

但是Centos没有GUI,运行如上代码会默认打开Chrome窗口,导致报错,所以在服务器上的代码还应该加上以下配置:

option.add_argument('--no-sandbox') #让Chrome在root权限运行
option.add_argument('--disable-dev-shm-usage') #不打开图形界面
option.add_argument('--headless') #浏览器不提供可视化页面
option.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度
driver = webdriver.Chrome(options=option,executable_path='/usr/bin/chromedriver') #配置driver路径

再加上chromedriver的路径,就可以正常执行了!

测试代码如下,需要根据自己的环境修改 executable_path !!!

from selenium import webdriver
from selenium.webdriver.common.by import By


option = webdriver.ChromeOptions()
option.add_argument('--no-sandbox') #让Chrome在root权限运行
option.add_argument('--disable-dev-shm-usage') #不打开图形界面
option.add_argument('--headless') #浏览器不提供可视化页面
option.add_argument('blink-settings=imagesEnabled=false') #不加载图片, 提升速度
driver = webdriver.Chrome(options=option,executable_path='/usr/bin/chromedriver')

# 访问网站
driver.get('https://www.baidu.com')
btn = driver.find_element(By.XPATH, '//*[@id="su"]')
text = btn.get_attribute("value")
print(1)
print(text)
# 关闭浏览器
driver.quit()

剩下的就是开个web服务,并将相应的port暴露出去,就可以在客户端调用测试功能啦!

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值