Selenium:Web自动化框架

Selenium自动化入门

1、Selenium概述

Selenium(Web Browser Automation)的初衷是Web应用自动化测试。Selenium广泛应用于爬虫,爬虫需要让浏览器自动运行网址来获取我们需要的内容

Selenium不是单个软件,它是由一系列的工具组成

2、Selenium环境搭建

1)安装:

shell 复制代码
pip install selenium

2)下载浏览器驱动(WebDriver)

WebDriver主要用于驱动浏览器运行

Chrome浏览器的WebDriver(chromedriver.exe)下载安装配置:

  • 查看Chrome浏览器版本

    设置 -> 关于Chrome -> 版本

  • 下载对应版本对应操作系统的驱动

    http://npm.taobao.org/mirrors/chromedriver/

  • 安装目录

    解压即可。将解压的chromedriver.exe放在Chrome浏览器安装目录下的Application目录中或Python解释器的安装目录下(与python.exe同级)

  • 配置系统环境变量path

    添加chromedriver.exe绝对路径

3、Selenium基本操作

Selenium基本操作包括打开/关闭浏览器、前进/后退、刷新

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
import time

# 声明浏览器对象
driver = webdriver.Chrome()
# 设置浏览器窗口大小
driver.set_window_size(800, 600)
# 最大化浏览器窗口
driver.maximize_window()

# 浏览器操作
# 等待加载:隐式等待(单位s)
driver.implicitly_wait(10)

# 访问页面
# 打开百度
driver.get("https://www.baidu.com")

# 打开CSDN首页
time.sleep(1)          # 暂停1秒
driver.get("https://www.csdn.net/")

time.sleep(1)          # 暂停1秒钟
driver.back()          # 回退:返回上个页面

time.sleep(1)          # 暂停1秒钟
driver.forward()       # 前进:进入下个页面

time.sleep(1)          # 暂停1秒钟
driver.refresh()       # 页面刷新

driver.quit()          # 关闭浏览器

4、网页元素定位

Selenium提供了8种HTML网页元素定位方式,可以返回单个(element)或返回全部(elements)

python 复制代码
'''
id选择器:find_element_by_id()、find_elements_by_id()
class选择器(不支持复合class值):find_element_by_class_name()、find_elements_by_class_name()
标签名定位:find_element_by_tag_name()、find_elements_by_tag_name()
CSS选择器:find_element_by_css_selector()、find_elements_by_css_selector()
name定位:find_element_by_name()、find_elements_by_name()
XPath定位:find_element_by_xpath()、find_elements_by_xpath()
链接文本定位:find_element_by_link_text()、find_elements_by_link_text()
部分链接文本定位:find_element_by_partial_link_text()、find_elements_by_partial_link_text()
'''
python 复制代码
# 打开简书
driver.get("https://www.jianshu.com")
# id选择器
# 在ID检索搜索框输入文本
# send_keys():向目标元素输入数据
element = driver.find_element_by_id("q").send_keys("xxx")
# class选择器
# 点击搜索按钮
# click():点击操作
driver.find_element_by_class_name("search-btn").click()

# 清空搜索框关键词
element.clear()

# 在搜索框输入关键词,并模拟键盘的Enter操作
element.send_keys("xxx", Keys.ENTER)

# Selenium退出
# driver.close():不会清除临时文件夹中的WebDriver临时文件(退出当前标签页)
# driver.quit():删除临时文件夹(关闭浏览器)
driver.close()

5、操作Cookie

python 复制代码
print(driver.get_cookies())              # 获取Cookie
driver.add_cookie({'user': 'cookie'})    # 添加Cookie
print(driver.get_cookie('cookie'))       # 获取设置的Cookie
driver.delete_cookie('cookie')           # 删除设置的Cookie
driver.delete_all_cookies()              # 清空所有Cookie

6、标签页管理

可以在浏览器中切换标签页或增加一个新标签页或删除一个标签页

python 复制代码
# 新增一个标签页
driver.execute_script('window.open()')
# 打印标签页
print(driver.window_handles)

# 切换至标签页1(当前标签页为0)
driver.switch_to.window(driver.window_handles[1])
# 在当前标签页访问知乎
driver.get("https://www.zhihu.com")

# 退出当前标签页
driver.close()
相关推荐
_.Switch8 分钟前
Python 自动化运维持续优化与性能调优
运维·开发语言·python·缓存·自动化·运维开发
J不A秃V头A14 分钟前
Python爬虫:获取国家货币编码、货币名称
开发语言·爬虫·python
阿斯卡码2 小时前
jupyter添加、删除、查看内核
ide·python·jupyter
小于小于大橙子3 小时前
视觉SLAM数学基础
人工智能·数码相机·自动化·自动驾驶·几何学
埃菲尔铁塔_CV算法4 小时前
图像算法之 OCR 识别算法:原理与应用场景
图像处理·python·计算机视觉
封步宇AIGC4 小时前
量化交易系统开发-实时行情自动化交易-3.4.2.Okex行情交易数据
人工智能·python·机器学习·数据挖掘
封步宇AIGC5 小时前
量化交易系统开发-实时行情自动化交易-2.技术栈
人工智能·python·机器学习·数据挖掘
love_and_hope5 小时前
Pytorch学习--神经网络--完整的模型训练套路
人工智能·pytorch·python·深度学习·神经网络·学习
明达技术5 小时前
LVDS高速背板总线:打造分布式I/O高效数据传输新境界
分布式·物联网·自动化·lvds
在人间负债^6 小时前
基于标签相关性的多标签学习
人工智能·python·chatgpt·大模型·图像类型