1.安装python
在Python官网下载对应的电脑配置的Python安装包程序,我这里是Wind64位的安装包,版本选择看个人习惯,目前最先版本是Python3.7。Python官网地址:https://www.python.org/
2.安装selenium
selenium的安装直接在cmd命令行安装,安装命令:pip install selenium
3.安装浏览器驱动
下载浏览器驱动,解压后添加到环境变量,一般放在python目录下即可
Chrome浏览器驱动下载地址:https://sites.google.com/a/chromiun.org/chromdriver/downloads
Firefox浏览器驱动下载地址: https://github.com/mozilla/geckodriver/releases
4.下面是简单的用百度搜索python+selenium代码
from selenium import webdriver #在selenium中导入webdriver
import time
driver=webdriver.Firefox() #打开火狐浏览器
driver.get('https://www.baidu.com') #打开百度首页
driver.find_element_by_id('kw').send_keys('python+selenium') #在输入框输入python+selenium
time.sleep(3) #延时3秒
driver.find_element_by_id('su').click() #点击搜索按钮
上面的例子中driver.find_element_by_id是python selenium自动化的一种元素定位方式例如百度的输入框id是‘kw’
这里的元素是开发用html写的页面元素,不清楚的可以了解一下:http://www.runoob.com/html/html5-intro.html
通常用到的定位元素的方法有一下几种:
id定位,上面例子中所示:find_element_by_id('kd')
html中有很多属性描述一个元素,id是其中的一种好比是一个学生的学号,但是id不是唯一的好比一个班有一个1号其他班也可以有1号
name定位:find_element_by_name('ie')
与id一样是一个描述html元素的一个属性,好比一个学社个的姓名我们同样可以用name去定位一个元素例如下面这些元素
<input type="hidden" name="ie" value="utf-8">
<input id="kw" name="wd" class="s_ipt" value="" maxlength="255" autocomplete="off">
<input type="hidden" name="f" value="8">
class定位:find_element_by_class_name('souutu-btn')
class与id、name属性类似
<span class="soutu-btn"></span>
<span class="bg s_btn_wr"><input type="submit" id="su" value="百度一下" class="bg s_btn"></span>
<span class="tools"><span id="mHolder"><div id="mCon"><span>输入法</span></div><ul id="mMenu"><li><a href="javascript:;" name="ime_hw">手写</a></li><li><a href="javascript:;" name="ime_py">拼音</a></li><li class="ln"></li><li><a href="javascript:;" name="ime_cl">关闭</a></li></ul></span></span>
tag定位:find_element_by_tag_name('input')
tag定位取的是一个元素的标签名例如<input>、<div>,因为一个页面中同样的名字标签太多,通过标签名去定位一个元素唯一性最底
link定位:find_element_by_link_text('新闻')
link定位与前面的几种定位方法不同,它专门用来定位本链接。
<a href="http://news.baidu.com" name="tj_trnews" class="mnav">新闻</a>
<a href="https://www.hao123.com" name="tj_trhao123" class="mnav">hao123</a>
<a href="http://map.baidu.com" name="tj_trmap" class="mnav">地图</a>
partial link定位:find_element_by_partial_linl_text(‘比较长的文本链接’)
link定位是对link定位的一种补充,有些文本链接会比较长,这时候可以取文本的链接的有一部分定位,只要这一部分信息可以唯一的标识这个链接。
xpath定位:find_element_by_xpath()
xpath定位是路径定位在需要定位的元素点击右键-->copy-->copy xpath
css selector定位:find_element_by_css_selector()
CSS(CascadingStyleSheets)是一种语言,它被用来描述HTML和XML文档的表现。CSS使用选择器来为页面元素绑定属性。这些选择器可以被selenium用作另外的定位策略