Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,Selenium 可以直接调用浏览器,它支持所有主流的浏览器(包括PhantomJS这些无界面的浏览器),可以接收指令,让浏览器自动加载页面,获取需要的数据,甚至页面截屏等。我们可以使用selenium很容易完成之前编写的爬虫,接下来我们就来看一下selenium的运行效果

一.安装环境

python+selenium+chrome

(1)python建议用python3及以上的版本

(2)selenium库这边我们使用pip接口进行安装

pip install selenium

pip接口详细说明可以看:

(3)这边推荐使用chrome浏览器,使用chrome浏览器则需要对应的驱动,下载链接如下:

http://chromedriver.storage.googleapis.com/index.html

找到与浏览器相对应的版本,32位即可驱动。

python selenium定时执行 python selenium自动化_python

python selenium定时执行 python selenium自动化_Chrome_02

二.selenium库基础函数使用

1.webdriver.Chrome()

from selenium import webdriver


####实例化浏览器
driver = webdriver.Chrome()

输出如下:

python selenium定时执行 python selenium自动化_python selenium定时执行_03

2.driver.get()  函数打开网页包含协议头

driver.get('https://www.baidu.com/')

3.driver.maximize_window() 函数实现最大化浏览器

4.driver.back() 函数实现后退操作

5.driver.forward() 函数实现前进操作

6.driver.refrensh() 函数实现刷新页面功能

7.driver.close() 函数实现关闭当前主窗口(主窗口:默认启动那个界面,就是主窗口)

8.driver.quit() 函数实现关闭driver对象启动的全部页面

9.driver.title 函数获取当前页面title信息

10.driver.current_url 函数获取当前页面url信息

三.selenium库定位八大方法

1.id定位方法

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()  ###实例化浏览器

driver.get('https://www.baidu.com/')  ###get打开浏览器

element = driver.find_element(By.ID, "kw").send_keys('搜索')  ###id定位方法,kw=id, 搜索为输入

python selenium定时执行 python selenium自动化_自动化_04

 输出:

python selenium定时执行 python selenium自动化_python selenium定时执行_05

2.name定位方法

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

###name定位方法  name='wd',1111为输入的内容
username = driver.find_element(By.NAME, 'wd').send_keys('1111')

python selenium定时执行 python selenium自动化_python_06

 输出:

python selenium定时执行 python selenium自动化_python selenium定时执行_07

3.class_name定位方法

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')


###class_name定位方法,class = 's_ipt',输入123456
Class = driver.find_element(By.CLASS_NAME, 's_ipt').send_keys('123456')

 

python selenium定时执行 python selenium自动化_Chrome_08

输出:

python selenium定时执行 python selenium自动化_selenium_09

4.tag_name定位方法

from selenium import webdriver
from selenium.webdriver.common.by import By

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

###
tel = driver.find_element(By.TAG_NAME, 'input').send_keys('1111')

 一般标签重复性过高,要精确定位,都不会选择tag_name !

5.link_text定位方法,click单击打开

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

###该⽅法只针对超链接元素(a 标签),并且需要输入超链接的全部⽂本信息
Text = driver.find_element(By.LINK_TEXT, '新闻').click()#

python selenium定时执行 python selenium自动化_selenium_10

输出:

python selenium定时执行 python selenium自动化_selenium_11

6.partial_link_text定位方法

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')

###partial_link_text定位方法,click单击打开,可以使用精准或模糊匹配
username = driver.find_element(By.PARTIAL_LINK_TEXT, '新闻').click()

7.Xpath定位方法

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')


###Xpath定位方法,称为相对路径定位法,运用copy xpath复制相对路径
username = driver.find_element(By.XPATH, '//*[@id="kw"]').send_keys('1111')

python selenium定时执行 python selenium自动化_Chrome_12

 输出:

python selenium定时执行 python selenium自动化_Chrome_13

8.CSS定位法

常用策略:
1、id 选择器
     语法:#id属性值
2、class 选择器
     语法:.class属性值(如果使⽤具有多个值的 class 属性,则需要传入全部的属性值 语法:[class="全部属性值"])
3、属性选择器
     语法1:[属性名=“属性值”]
     语法2:标签名[属性名=“属性值”]
4、标签选择器
     语法:标签名 如input,button
5、层级选择器
     父子层级关系:父层级策略 > 子层级策略 (也可以使用空格连接上下层级策略)
     祖辈后代层级关系:祖辈策略 后代策略
     提示:>与空格的区别,大于号必须为子元素,空格则不用。

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

driver.get('https://www.baidu.com/')


###id属性值
ID = driver.find_element(By.CSS_SELECTOR, '#kw"]').send_keys('11111')

###class属性值
Class = driver.find_element_by_css_selector('[class="s_ipt"]').send_keys('1111')

###语法属性
user = driver.find_element_by_css_selector('input[id="kw"]').send_keys('1111')
user = driver.find_element_by_css_selector('[name="wd"]').send_keys('1111')

###语法层级选择属性
user = driver.find_element_by_css_selector('#s_kw_wrap>input').send_keys('1111')
user = driver.find_element_by_css_selector('#form input').send_keys('1111')

driver.close()

 八大定位方法就如上所述。

四.实例演示

1.元素的操作方法

(1)、.send_keys() # 输入方法

(2)、.click() # 点击方法

(3)、.clear() # 清空方法

2.实际操作

(1)进入百度搜索(2)搜索栏输入python(3)百度一下(3)选择python百度百科进入

from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys

driver = webdriver.Chrome()

###进入百度搜索
driver.get('https://www.baidu.com/')

###找到输入框,输入python
element = driver.find_element(By.ID, "kw").send_keys('python')

###单击鼠标开始搜索
element = driver.find_element(By.ID, "su").click()

###找到百度百科,单击鼠标进入
username = driver.find_element(By.XPATH, '//*[@id="2"]/div/div/h3/a').click()

后续对于selenium库的更多使用,下期再继续介绍啦!

@Neng