今天突然需要使用selenium控制一个html页面,来进行登录操作,这个问题难住了偶。。。。
先说下我的测试环境吧: 开发环境windows+python, 执行环境Linux+python,且无GUI。
之前也使用过webdriver,但是都是在window环境下,如何在不使用GUI的情况下工作呢? 一番度娘之后,答案是使用无头浏览器。
浏览器
Firefox和chrome都支持无头模式,而且都支持windows linux 和 mac平台。
但是我选择Firefox作为我的测试浏览器,因为centos6.8上自带firefox(我试过chrome了,在centos6.8上安装各种掉坑。。。)
自带的firefox版本是52.9太老了,我要更新下它。
首先, rpm -Uvh https://mirrors.tuna.tsinghua.edu.cn/epel/6/x86_64/epel-release-6-8.noarch.rpm
然后, yum update firefox, 将其更新到firefox-60.6.0
安装驱动程序
geckodriver是以gecko为核心的浏览器的驱动。 其实它是一个webdriver client与基于gecko的浏览器之间交互的代理。
可以从这里下载到需要的版本:
https://github.com/mozilla/geckodriver
geckodriver的版本要和firefox的版本匹配,能与firefox-60.6.0配合的geckodriver的版本是0.24,参考https://firefox-source-docs.mozilla.org/testing/geckodriver/Support.html
Linux下,放到一个目录下例如 /usr/bin下,同时为其添加可执行属性。无论是windows还是linux,最好把驱动放到搜索路径下,这样可以不用指定它的路径了。
安装python的selenim包
这个比较简单,直接pip安装即可, pip install selenium,安装的selenium版本是3.141.0
写个简单的例子
from selenium import webdriver
options = webdriver.FirefoxOptions()
options.add_argument('-headless')
browser = webdriver.Firefox(executable_path="/usr/bin/geckodriver",options=options)
browser.get("http://www.baidu.com")
print browser.page_source
本文介绍如何在无GUI的Linux环境中使用Python的Selenium库配合无头模式下的Firefox浏览器实现网页自动化操作,包括安装配置及简单示例。
142

被折叠的 条评论
为什么被折叠?



