本文讲述了 Selenium如何在LInux环境中运行 分为三个部分 环境部署、示例(有界面和无界面)、错误处理
环境部署
安装浏览器
yum install [https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm](https://dl.google.com/linux/direct/google-chrome-stable_current_x86_64.rpm)
检查chrome的版本
google-chrome --version
安装依赖
yum install pango.x86_64 libXcomposite.x86_64 libXcursor.x86_64 libXdamage.x86_64 libXext.x86_64 libXi.x86_64 libXtst.x86_64 cups-libs.x86_64 libXScrnSaver.x86_64 libXrandr.x86_64 GConf2.x86_64 alsa-lib.x86_64 atk.x86_64 gtk3.x86_64 -y
最好切换到你当前项目的目录中进行下载 这样可以明确的找到下载后的驱动包 便于解压
wget [https://npm.taobao.org/mirrors/chromedriver/{这里是对应chrome浏览器的版本}/chromedriver_linux64.zip](https://npm.taobao.org/mirrors/chromedriver/{这里是对应chrome浏览器的版本}/chromedriver_linux64.zip)
解压
yum install -y unzip zip
# 首先确定路径 如果已经在项目路径下则使用
unzip xxxx.zip
# 如想解压到其他目录
unzip xxx.zip /data/xxx/xxx/xxx
chromedriver --version 查看版本与浏览器版本是否一致
chmod 777 chromedriver 修改执行权限
cp chromedriver /usr/bin
pip install selenium
安装 # 如果不想使用无头浏览器的情况下 安装下方软件 如在Selenium配置中已经设置了无头浏览器 则不用下载
yum install Xvfb # Xvfb 实现了x11显示服务协议 所以可以在无显示器界面进行虚拟处一个显示器服务
pip install pyvirtualdisplay # 一个python用于操作Xvfb的库
示例1:模拟Linux下 打开浏览器
from pyvirtualdisplay import Display
from selenium import webdriver
# 这里是为了模拟浏览器有界面的情况下, 如果是无界面的 看下一条示例
display = Display(visible=False, size=(800,600))
display.start()# 在linux下 最好可以在当前根目录下创建一个tools或者driver_tools目录 #将下载好的driver驱动程序放在该目录下并在运行时指定驱动程序位置 这样可以有效减少报错 例如:#driver =webdriver.Chrome(executable_path=r'/tools/chromedriver.exe')
driver= webdriver.Chrome()
driver.get(url)print(driver.title())
driver.quit()
示例2:无头模式
from selenium import webdriver
opt = webdriver.ChromeOptions()
opt.add_argument("--headless")
driver= webdriver.Chrome(executable_path=r'/tools/chromedriver.exe,chrome_options=opt)
driver.get(url)print(driver.title())
driver.quit()
有界面下异常处理:
当你的程序以有界面在Linux上运行的时间久了 出现了卡顿的情况 并且你发现在display.start()运行完以后就不在向下进行了 那么你可以向下看
rpm -qa|grep xorg-x11-server-extra #首先执行该命令 如果出现安装 那么等待该方法安装完成后 在次进行尝试 如果不行 继续向下执行命令ps-aux|grep Xvfb # 执行该命令查询当前Linux服务下 是否出现了大量未被杀掉的僵尸进程 如果有 则执行下个命令
killall 或者pkill Xvfb # 然后再次启动即可
本文转载自: https://blog.csdn.net/nbt_silent1/article/details/125193553
版权归原作者 手速极快的点狗 所有, 如有侵权,请联系我们删除。
版权归原作者 手速极快的点狗 所有, 如有侵权,请联系我们删除。