selenium无头模式及Linux部署常用代码

本文介绍了在Linux环境下使用Selenium的无头模式进行自动化测试,特别是针对Chrome浏览器的配置。内容包括如何解决Chrome启动异常的问题,详细步骤安装Chrome和对应的驱动,并提醒在Linux中使用rm命令需谨慎。同时,提供了文件在Linux与远程服务器之间的上传和下载命令。

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

selenium无头模式

一、代码

control_type = sys.argv[1]
opts = Options()
opts.add_argument('--headless')  #设置无头模式
opts.add_argument("--no-sandbox")
opts.add_argument('--user-agent="Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_7) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/103.0.0.0 Safari/537.36"')
if control_type == 1:      #1为linux模式,3为本地模式
    browser = webdriver.Chrome('/home/tools/chromedriver', options=opts)
else:
    browser = webdriver.Chrome('D:\project\pythonProject\practice/chromedriver.exe', options=opts)
# 禁止加载图片
prefs = {
    'profile.default_content_setting_values': {
        'images': 2
    }
}
opts.add_experimental_option('prefs', prefs)
browser.get(parent_model_in.url)
time.sleep(0.2)
content = browser.page_source
# print(content)
html = etree.HTML(content)
browser.close()

二、注意

在linux上部署时,要注意添加opts.add_argument("--no-sandbox"),否则会报unknown error: Chrome failed to start: exited abnormally (Driver info: chromedriver= 这样的错,原因是chrome不对root用户使用,若root用户使用需要添加’–no-sandbox’。
在添加linux的chromedriver时,路径为 ‘/’,windo为 ‘\’
selenium启动参数 表格中的–均为double(-)

启动参数作用
–user-agent=“”设置请求头的User-Agent
–window-size=1366,768设置浏览器分辨率(窗口大小)
–headless无界面运行(无窗口)
–start-maximized最大化运行(全屏窗口)
–incognito隐身模式(无痕模式)
–disable-javascript禁用javascript
–disable-infobars禁用浏览器正在被自动化程序控制的提示

在linux上安装chrome及其驱动:

分步骤进行
1、下载依赖
yum install mesa-libOSMesa-devel gnu-free-sans-fonts wqy-zenhei-fonts
2、下载并安装chrome
yum install https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm
yum install ./google-chrome-stable_current_x86_64.rpm
一路y下来。
3、查看版本号
google-chrome --version 如果正常显示版本,即为正确安装。
4、根据版本号下载对应的驱动
wget http://npm.taobao.org/mirrors/chromedriver/104.0.5112.79/chromedriver_linux64.zip
标记的为版本号,需要在 CNPM Binaries Mirror 即 https://registry.npmmirror.com/binary.html?path=chromedriver/中存在,要保证最后一个小数点前的版本号一致。
unzip chromedriver_linux64.zip 解压
mv chromedriver /usr/bin/ 移动文件 格式为 mv filename path
chmod +x path 查看文件
如果版本下载错误可cd到对应路径使用ll查看文件夹包含的文件,确定之后使用
rm -f path 删除文件 或 rm -rf path 删除文件夹
-r 就是向下递归,不管有多少级目录,一并删除
-f 就是直接强行删除,不作任何提示的意思
-i 进行交互式删除。

注意:linux没有回收站!!! 使用rm命令需谨慎!!!

参考

https://www.cnblogs.com/pywjh/archive/2018/10/14/9785650.html
https://blog.youkuaiyun.com/weixin_42008966/article/details/110127510

后续为个人补充linux命令:
ps aux|grep 进程名 ----------- 搜索后台进程进程名为模糊搜索,但要保证输入的是正确且有序的
后台进程

kill PID --------------- 杀死进程标黄的为对应的进程号

上传本地文件
scp /local_dir/filename username@ip:/path
scp /download/index.html root@39.97.235.240:/var/www/html

该命令将本地 /download 目录下 index.html 上传至 39.97.235.240 服务器 root 用户下 /var/www/html 目录

scp username@ip:/path/filename /local_dir # 本地目录
scp root@39.97.235.240:/var/www/html/index.html /download

该命令将 39.97.235.240 服务器 root 用户 /var/www/html 下 index.html 文件下载至本地 /download 目录

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值