天天看点

python chromedriver with selenium on linux

为要考虑写一个python应用, 查资料时无意发现老朋友selenium已经发展到和chrome很深入的阶段。

chrome为了配合自动测试的需求,甚至专门开发chromedriver这样的东西,一时技痒尝试了一下

环境是前面搭好的centos7

google.com/chrome是墙外无法访问了,幸好还有它自家分号

https://www.google.cn/chrome/

windows下访问自动判断给的是windows安装包,要拉到最下选择其他平台的,然后选择“64 位 .rpm(适用于 Fedora/openSUSE)”,得到的是一个

google-chrome-stable_current_x86_64.rpm

然后yum安装chrome以及中文字体

# yum install google-chrome-stable_current_x86_64.rpm 
# yum install google-noto-sans-simplified-chinese-fonts
           

selenium略为麻烦,它要从python安装,要用到pip

pip又不在centos的标准repo里,我选择先安装epel源,

# yum install https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# yum install python2-pip python2-wheel
# pip install selenium
           

chromedriver自身地址也在墙外,幸好国内有个mirror

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

选择了上面最新的76.0.3865.10,虽然我下载的chrome版本以及到了76.0.3865.100

但大版本一致就没问题,下载后是个zip文件 chromedriver_linux64.zip

unzip 解压之得到一个单独的可执行文件 chromedriver

终于可以开始小福利一下,谁让csdn上python主和selenium下面最热的居然不是自动测试,而是各种福利呢

先解决chrome不能直接在centos服务器环境里启动的事

# export DISPLAY=192.168.0.102:0.0    
## 服务器上没有安装Xserver,不过MobaXterm自带的有,很好很方便
# ./chromedriver &
# vim demo.py
           

然后在demo.py里输入代码, 为免广告嫌疑我把网址马赛克了

from selenium import webdriver

cap = webdriver.DesiredCapabilities.CHROME.copy()
browser = webdriver.Remote(command_executor="http://localhost:9515", desired_capabilities=cap);
browser.get('https://手工马赛克/tags-all.html')
           

福利截图被拦截了,没得妹子看

成功后地址栏下面有一行"Chrome is being controlled by automated test software"

对测试和爬虫需求来说,chrome还有个更强大的特性是headless模式,全程无窗口模拟真实浏览器

这次不打算往下撸了,有空再搞