美文网首页
初识Selenium

初识Selenium

作者: 今天也是努力的小张 | 来源:发表于2020-05-18 13:58 被阅读0次

一、Selenium介绍

1. 介绍

  • Selenium是一个Web的自动化测试工具,最初是为网站自动化测试而开发的,可以按照指定的命令自动操作,Selenium可以直接运行在浏览器上,可以支持所有的主流浏览器(包括PhantomJS这些无界面的浏览器)
  • Selenium自己不带浏览器,不支持浏览器的功能,需要与第三方浏览器结合在一起才能使用。有时候需要让他内嵌在代码中运行,所以可以使用以下模式:selenium+phantomJSselenium+chrome

2. 安装

在pycharm的terminal命令行下载安装

# 强调版本
pip install selenium==2.48.0

selenium官方参考文档

二、PhantomJS介绍

1. 介绍

  • PhantomJS是一个基于Webkit的“无界面”(headless)浏览器,他会把网站加载到内存并执行页面上的JavaScript,因为不会展示图形界面,所以运行起来更加高效
  • 如果把selenium和phantomJS结合在一起,就可以运行一个非常强大的网络爬虫,可以处理JavaScript、cookie、headers,以及任何真实用户需要做的事情。

2. 和Chrome的对比

(1)selenium+phantomJS
  • 无界面运行速度快
  • 是一种工具,代替真实的浏览器。可以被网站识别。
(2)selenium+chrome
  • 有界面运行速度稍低
  • 真实的浏览器。轻易不会被发现,可靠性和安全性非常好。使用较多

3. 安装

(1)PhantomJS安装
  • 在网上搜索PhantomJS镜像
    搜索镜像.png
  • 下载phantomjs-2.1.1版本


    下载.png
  • 解压后将bin目录下的phantomjs.exe文件复制粘贴在Anaconda环境下的Scripts目录下。
    使用.png
    使用Anaconda环境时会先加载scripts目录下的文件
  • 测试
    在windows命令行输入plantomjs如图所示,安装成功。
    测试.png
(2)Chrome安装

chrome的安装要和Chrome浏览器版本接近

  • 查看Chrome浏览器的版本
    查找.png
    查看版本信息.png
    如果查看版本信息时发现检查更新错误,在官网重新下载安装浏览器
  • 在网上搜索chromedriver镜像
    搜索chromedriver镜像.png
  • 下载和浏览器版本最接近的版本


    下载.png
  • 解压将exe文件chromedriver.exe文件复制粘贴在Anaconda环境下的Scripts目录下。
  • 测试
    在在windows命令行输入chromedriver如图出现版本信息,安装成功。
    测试.png

三、使用

  1. 创建驱动对象
driver = webdriver.PhantomJS()
# driver = webdriver.Chrome()
  1. 请求
driver.get(url)
  1. 获取页面内容
html_str = driver.page_source
  1. 学习案例
from selenium import webdriver
from selenium.webdriver.common.keys import Keys


# selenium使用步骤
# 1、创建浏览器驱动:就是制定使用哪个浏览器的驱动
driver = webdriver.Chrome()     # 使用chrome有界面浏览器
# driver = webdriver.PhantomJS()    # 使用phantomjs无界面浏览器

# 2、请求URL(相当于:浏览器地址栏中输入URL回车搜索)
driver.get('https://www.baidu.com/')

# 3、做浏览器操作
# (1)最大化窗口:截图确定比例范围时会使用
driver.maximize_window()
# (2)获取页面源代码:
# page_source就是浏览器html中的所有数据,将js执行后得到的页面源代码
# 看到什么就能获取什么,就是F12开发者工具下的element里面的内容
# 区分网页页面源代码,是不同的
html_str = driver.page_source
# (3)获取页面元素返回的对象:WebElement
# 通过id获取:尽量使用id,因为id唯一
input_id = driver.find_element_by_id('kw')  # 搜索框
# 通过xpath获取:
input_xpath = driver.find_element_by_xpath('//*[@id="kw"]')
# 通过css选择器获取:
input_css = driver.find_element_by_css_selector('#kw')
# print(input_id, input_xpath, input_css, sep='\n')
# (4)WebElement的操作
# 通用操作:获取属性、内容
# 例如:input:输入,btn:点击,form表单:提交
print('maxlength属性', input_id.get_attribute('maxlength'))
print('maxlength内容', input_id.text)
# 截屏
driver.save_screenshot('before.png')
# 输入(相当于:在浏览器搜索框输入搜索条件)
input_id.send_keys('python学习')
driver.save_screenshot('after.png')
# 点击:例子:点击百度一下
driver.find_element_by_xpath('//*[@id="su"]').click()
# 提交(form表单)
# 获取cookies(cookie池)
cookies = driver.get_cookies()
# print(cookies)
# 重新输入一个内容查找
input_id.send_keys(Keys.CONTROL, 'a')     # 全选==ctrl+A
input_id.send_keys(Keys.CONTROL, 'x')     # 剪切==ctrl+x
input_id.send_keys('刘亦菲')
# 退出
driver.close()     # 关闭选项卡,通常情况下只打开一个,所以关闭选项卡即关闭浏览器
driver.quit()     # 相当于点击X,直接关闭浏览器

相关文章

网友评论

      本文标题:初识Selenium

      本文链接:https://www.haomeiwen.com/subject/ihavohtx.html