1、环境搭建:
在S01E01中其实已经搭建好了python和selenium的环境,具体方法可以见S01E01,需要增加的工作是安装浏览器driver,比如:chromedriver、Firefox driver、IE driver等。
安装chrome driver:
1)下载chromedriver.exe:可以在百度或者CSDN搜索到,找到和自己系统匹配的文件下载即可。
2)不需要运行此exe文件,将chromedriver.exe文件放置到chrome浏览器的安装路径下,比如:C:\Program Files\Google\Chrome\Application
3)将C:\Program Files\Google\Chrome\Application;此路径配置到环境变量PATH中。
至此,安装chromedriver完成,IE driver等同理。
2、验证测试
运行如下脚本(新建一个后缀是py的文件,双击运行即可):
#coding=utf-8 #防止乱码,可不加
from selenium import webdriver #使用selenium中webdriver里的函数就需要先导包
driver=webdriver.Chrome() #调用chrome浏览器,同理Firefox、Ie,注意只有首字母大写。
driver.get('https://www.baidu.com') #浏览器跳转到百度
driver.quit() #退出窗口
运行界面如图:
至此,验证搭建selenium + webdriver环境成功。
3、selenium自动化实现
接下来就是实际进行操作实现selenium自动化,其中最主要的就是元素的定位和操作。
3.1元素定位
webdriver提供了很多办法进行对象定位:
· · id
· · name
· · class name
· · tag name
· · link text
· · partial link text
· · xpath
· · css selector
如定位百度输入框:
则如下方式都是可以达到同样的效果
driver.find_element_by_id("kw").send_keys("Python")#通过id方式
driver.find_element_by_name("wd").send_keys("Python")#通过name方式
driver.find_element_by_tag_name("input").send_keys("Python")#通过tag name方式
driver.find_element_by_class_name("s_ipt").send_keys("Python")#通过class name方式
driver.find_element_by_css_selector("#kw").send_keys("Python")#通过css selector方式
driver.find_element_by_xpath("//*[@id='kw']").send_keys("Python")#通过xpath方式
当页面出现有可以点击的链接跳转上面的文字,也可以使用link和partial link的方式进行定位。
link定位:
driver.find_element_by_link_text("贴吧").click()
partial link定位:(可以看做link方式只使用链接中的一部分字段)
driver.find_element_by_partial_link_text("贴").click()
tips:
由于出现了汉字,在实际运行中容易出现编码问题,比如在第一次运行中出现如下错误:
UnicodeDecodeError: 'utf8' codec can't decode byte
在脚本首行其实是写了#coding=utf-8,但是还是出现了编码问题。
这其实是使用notepad++保存脚本文件默认的格式是ANSI,并不是utf-8导致的,只要将文件保存的格式改成utf-8即可,即菜单栏中格式--选择以utf-8格式编码即可。
明天将继续学习webdriver中的其他方法,包括操作浏览器、事件处理、打印信息、添加等待事件等。