一、前言大家好,我是安国!如果日常编写的Python自动化程序在本地运行稳定,可以考虑部署到服务器,结合定时任务,彻底解放双手。但是由于自动化程序涉及到平台兼容性,所以在服务器上运行时,有一些依赖库需要做特殊处理本文使用Selenium写的一个Python自动化程序,先来说说脚本部署服务器的详细过程安装桌面环境“以GNOME为例”,设置以图形模式启动,并打开图形界面#安装GNOME桌面环境yumgroupinstall-y"GNOMEDesktop"#设置以图形模式启动systemctlset-defaultgraphical.target#打开图形界面startx2-2安装配置远程桌面以最常见的VNC为例首先在服务器上安装VNCServer并设置登录密码#安装vncserveryuminstalltigervnc-server-y#设置登录密码为vncviewer登录密码vncpasswd然后,启动VNCServer并打开对应的端口号#打开VNC服务systemctlstartvncserver@:1#设置systemctlenablevncserver@:1#查看VNC服务的端口netstat-lnpt|grepXvnc#开启端口号firewall-cmd--add-port=5901/tcp--permanentfirewall-cmd--reload最后下载VNC查看器,使用“IP地址+端口号+登录密码”远程连接服务器下载地址:https://www.realvnc.com/en/co...PS:VNCServer显式指定IP地址+端口号2-3安装Chrome浏览器服务器默认安装的浏览器是FireFox,需要手动安装Chrome浏览器#下载最新的Chrome浏览器wgethttps://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm#安装浏览器yuminstallgoogle-chrome-stable_current_x86_64.rpm#查看Chrome浏览器版本google-chrome-version安装完成后发现Root用户无法启动Chrome浏览器PS:服务器chrome浏览器不支持直接使用,需要启动--no-sandbox参数#启动chrome浏览器带--no-sandbox#方法一:命令行启动/usr/bin/google-chrome-stable--no-sandbox#方法二:修改Chrome浏览器快捷图标的启动方式#启动方式:--no-sandbox2-4配置ChromeDriver并授权在官网下载相应版本的ChromeDriver下载地址:http://chromedriver.storage.g...解压后上传到服务器的“usr/bin”目录下。最后给chromedriver文件授予可执行权限[root@localhostxh]#cd/usr/bin#授予可执行权限[root@localhostbin]#sudochmod+xchromedriver2-5可视化运行测试上传自动化脚本到服务器并设置以headed模式运行注意:由于服务器的Chrome需要配置为以no-sandbox模式启动,所以自动化脚本需要添加设置属性option=webdriver.ChromeOptions()#Runinheadlessmode#option['启用自动化'])browser=webdriver.Chrome(chrome_options=option)“HeadedMode”测试运行正常后,可以开启“HeadlessMode”,编写定时任务,将自动化脚本与定时任务关联起来。细说之后需要指出的是,服务器端的可视化调试测试确实很有必要,可以帮助我们提前定位兼容性问题,更多相关技术干货,大家可以关注公众号「AirPython」解锁!如果觉得文章还不错,请点赞、分享、留言,因为这将是我继续输出更多优质文章的最强大动力!
