目录
2. 2 安装Selenium⼯具包(pip install selenium)
1 什么是web⾃动化
操作的对象是浏览器UI,或者⼿机⻚⾯也可以采⽤Web⾃动化测试。采⽤selenium⼯具实现web⾃动化实战,selenium 是⼀种只能操作web⾃动化的技术框架库。简单来说,就是写段代码解放双手,让程序执行控制你的浏览器进行一系列操作,也可以获取数据,提高了效率。
2 安装
2.1 ⾸先安装python环境
https://www.cnblogs.com/huangbiquan/p/7784533.html Python环境PCharm的安装
2. 2 安装Selenium⼯具包(pip install selenium)
cmd环境下,用pip install selenium

2.3 安装浏览器驱动
以使⽤⾕歌浏览器(Google Chrome)为例。
1
) ⾸先下载⾕歌浏览器chromedriver驱动,
注意不同的浏览器需要下载与之对应的浏览器驱动。
(在浏览器中查看版本,设置-->关于Chrome)

将下载 的驱动放置到⾕歌浏览器的安装⽬录下。
2)将浏览器的安装位置路径添加到环境变量⾥。
添加环境变量步骤为:选择桌⾯上的计算机图标,单击右键选择属性,在弹出的系统属性界⾯选择⾼级系统设置,单击环境变量按钮,在系统变量列表⾥选择Path项,单击编辑按钮,在弹出的界⾯中,在变量值框内粘贴浏览器的安装位置路径(注意变量值的每个路径需要⽤分号隔开),最后单击确定按钮。
3 By定位元素
进⾏Web⻚⾯⾃动化测试,其中对⻚⾯上的元素进⾏定位是操作的核⼼。⽽操作⼜是以定位为前
提,因此对⻚⾯上的元素定位是进⾏⾃动化测试的基础(先定位到某个按钮或者文本框,才能对他们进行操作)。⻚⾯上的元素就像⼈⼀样有各种属性,⽐如元素名,元素id,元素属性(class属性,name属性)等。WebDriver就是利⽤元素的这些属性来定位的,Selenium进⾏⾃动化测试的⼀个
很重要的东⻄就是元素定位。
使⽤时应先导⼊By类:
from selenium.webdriver.common.by import by
例:find_element(By.ID,'kw') # 通过ID定位find_element(By.NAME,"wd") # 通过NAME定位find_element(By.CLASS_NAME,"s_ipt") # 通过CLASS定位find_element(By.TAG_NAME,"input") # 通过TAG NAME定位find_element(By.LINK_TEXT,u"新闻")find_element(By.PARTIAL_LINK_TEXT,u"新")find_element(By.XPATH,"//*[@class='bg s_btn']")
那么这些id,name 从哪里得到呢?
在浏览器中先找到要操作的位置,通过右击--->检查打开网页源代码,然后通过移动鼠标找到对应位置的代码,这样就能查出它的属性。
4 web自动化实例举例
4.1 自动化搜索内容
##-------以谷歌浏览器为例,百度搜索"selenium如何使用"----------
import time
###导入selenium中的webdriver
from selenium import webdriver
from selenium.webdriver.common.by import By
## 通过webdriver.Chorme() 创建浏览器对象
driver = webdriver.Chrome()
#获得浏览器对象,通过get()发送数据跳转到百度网站
driver.get("http://www.baidu.com")
# 定位百度的输入框,在输入框中输入:selenium如何使用
driver.find_element(By.ID,"kw").send_keys("selenium如何使用")
# 定位百度一下的按钮,然后进行点击操作
driver.find_element(By.ID,"su").click()
# 睡眠5s
time.sleep(5)
#关闭浏览器
driver.quit()
4.2 对51job网站的搜索信息进行自动化爬虫
##导入selenium中的webdriver
from selenium import webdriver
from selenium.webdriver.common.by import By
# 获取浏览器对象
driver = webdriver.Chrome()
# 跳转去找工作网站
driver.get("http://www.51job.com")
# 在文本框中输入java
driver.find_element(By.ID,"kwdselectid").send_keys("JAVA")
#点击选择城市的按钮
driver.find_element(By.ID,"work_position_input").click()
#点击取消掉之前已选中的城市(恢复默认未选中城市状态)
city_list = driver.find_elements(By.CSS_SELECTOR,"#work_position_click_center_right_list_000000 em[class = on]")
for i in city_list:
i.click()
#点击心仪的城市 西安
driver.find_element(By.ID,"work_position_click_center_right_list_category_000000_200200").click()
#点击确定按钮
driver.find_element(By.ID,"work_position_click_bottom_save").click()
#点击搜索
driver.find_element(By.CSS_SELECTOR,".ush button").click()
#将页面数据获取出来
jobs = driver.find_elements(By.CLASS_NAME,"j_joblist")
for job in jobs:
fields = job.find_elements(By.TAG_NAME,"span")
for f in fields:
a = [f.text]
print(a)