S01E02 Selenium Webdriver自动化编程初步(上)

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方式


注意css selector、xpath的规则如果不明白可以鼠标点击了元素的html文件处--右击--复制中直接可以复制出来(xpath中注意kw要用单引号包裹),如图



当页面出现有可以点击的链接跳转上面的文字,也可以使用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中的其他方法,包括操作浏览器、事件处理、打印信息、添加等待事件等。

你可能感兴趣的:(Python)