惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
T
Threatpost
Latest news
Latest news
N
News | PayPal Newsroom
Threat Intelligence Blog | Flashpoint
Threat Intelligence Blog | Flashpoint
Help Net Security
Help Net Security
D
Darknet – Hacking Tools, Hacker News & Cyber Security
AI
AI
Simon Willison's Weblog
Simon Willison's Weblog
TaoSecurity Blog
TaoSecurity Blog
The Last Watchdog
The Last Watchdog
L
LINUX DO - 热门话题
Google DeepMind News
Google DeepMind News
T
Threat Research - Cisco Blogs
O
OpenAI News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
T
The Exploit Database - CXSecurity.com
NISL@THU
NISL@THU
Application and Cybersecurity Blog
Application and Cybersecurity Blog
S
Securelist
小众软件
小众软件
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
Martin Fowler
Martin Fowler
S
SegmentFault 最新的问题
Cisco Talos Blog
Cisco Talos Blog
云风的 BLOG
云风的 BLOG
AWS News Blog
AWS News Blog
GbyAI
GbyAI
N
News and Events Feed by Topic
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
美团技术团队
Engineering at Meta
Engineering at Meta
A
About on SuperTechFans
博客园 - 三生石上(FineUI控件)
S
Schneier on Security
博客园 - 聂微东
V2EX - 技术
V2EX - 技术
T
Troy Hunt's Blog
SecWiki News
SecWiki News
S
Secure Thoughts
B
Blog RSS Feed
Hugging Face - Blog
Hugging Face - Blog
WordPress大学
WordPress大学
腾讯CDC
H
Heimdal Security Blog
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
Apple Machine Learning Research
Apple Machine Learning Research
月光博客
月光博客
www.infosecurity-magazine.com
www.infosecurity-magazine.com
P
Privacy International News Feed

星辰博客

24数证杯部分题目复现 — 星辰博客星辰博客 专为鸿蒙用户打造的 消息提醒 应用 — 星辰博客星辰博客 Umami - 网站流量分析工具 — 星辰博客星辰博客 Reqable——“国产级”新一代API开发工具 — 星辰博客星辰博客 【取证】2025届盘古石计算机取证部分wp — 星辰博客星辰博客 Neo4j知识图谱安装与使用教程 — 星辰博客星辰博客 svg文字动画效果 - 路径加载+加粗渐显 — 星辰博客星辰博客 ZIC云数据新春企划:数据赋能,新春新气象! — 星辰博客星辰博客 【资源】MSHR——CSS 渐变样式生成工具 — 星辰博客星辰博客
Selenium入门配置和使用 — 星辰博客星辰博客
StarChen · 2025-06-09 · via 星辰博客

This post was updated 369 days ago and some of the ideas may be out of date.

环境安装

pip install selenium

支持搭配的web-driver:phantomjs(无头)、chrome(常用)、le、firefox……

针对不同版本chrome下载webdriver

Selenium入门配置和使用插图

查看chrome版本,下载相应的跨平台 Chrome 测试版

下载地址:Chrome for Testing availability

Selenium入门配置和使用插图1

win64电脑可直接下载win64对应版本,其他平台使用其他下载链接即可。

下载后,文件夹解压后记好文件地址,我的是:C:\Users\16493\chrome-win64

Selenium入门配置和使用插图2

配置环境变量

Selenium入门配置和使用插图3

进入到环境变量后,找到系统变量 → Path,在下方点击编辑

Selenium入门配置和使用插图4

点击新建,将刚刚记住的文件地址复制进去。

Selenium入门配置和使用插图5
Selenium入门配置和使用插图6

基础用法

对页面进行操作

初始化浏览器对象

也可以指定绝对路径来启动特定的chrome

from selenium import webdriver
# 初始化浏览器为chrome浏览器
browser = webdriver.Chrome()
# 指定绝对路径的方式(可选)
path = r'填入自己的chromedriver路径'
browser = webdriver.Chrome(path)
# 关闭浏览器
browser.close()

访问页面

from selenium import webdriver
# 初始化浏览器为chrome浏览器
browser = webdriver.Chrome()
# 访问百度首页
browser.get(r'https://www.baidu.com/')
# 关闭浏览器
browser.close()

设置浏览器大小

set_window_size()用来设置浏览器大小,如果想要全屏,可以直接使用以下方式:

from selenium import webdriver
# 初始化浏览器为chrome浏览器
driver = webdriver.Chrome()
# 将浏览器设置为全屏
driver.maximize_window()
from selenium import webdriver
import time  

browser = webdriver.Chrome()

# 设置浏览器大小:全屏
browser.maximize_window()   
browser.get('https://www.baidu.com')  
time.sleep(2)

# 设置分辨率 500*500
browser.set_window_size(500,500)  
time.sleep(2)

# 关闭浏览器
browser.close()

获取页面基础属性

当使用selenium打开网页后,可以获取到基础的网页信息

from selenium import webdriver

browser = webdriver.Chrome()
browser.get('https://www.baidu.com') 

# 网页标题
print(browser.title)
# 当前网址
print(browser.current_url)
# 浏览器名称
print(browser.name)
# 网页源码
print(browser.page_source)
Selenium入门配置和使用插图7

定位页面元素

属性函数
CLASSfind_element(by=By.CLASS_NAME, value=‘’)
XPATHfind_element(by=By.XPATH, value=‘’)
LINK_TEXTfind_element(by=By.LINK_TEXT, value=‘’)
PARTIAL_LINK_TEXTfind_element(by=By.PARTIAL_LINK_TEXT, value=‘’)
TAGfind_element(by=By.TAG_NAME, value=‘’)
CSSfind_element(by=By.CSS_SELECTOR, value=‘’)
IDfind_element(by=By.ID, value=‘’)

基本操作一

通过捕捉到元素后,复制Xpath,填入到参数内容即可定位。

Selenium入门配置和使用插图8

因此可以实现以下操作:

点击

定位到指定元素后,添加.click()即可

driver.find_element_by_xpath('填入xpath地址').click()

文本输入

driver.find_element_by_xpath('填入xpath地址').send_keys("hello")

清空文本内容

driver.find_element_by_xpath('填入xpath地址').clear()

获取文本信息

driver.find_element_by_xpath('填入xpath地址').text

如若获取不到内容,则需要实例化后进行输出即可

response = driver.find_element_by_xpath('填入xpath地址').text
print = (response)

基本操作二

无界面启动

一般启动均为有界面启动,方便调试。以下为无界面启动讲解:

方式一:

start_option = webdriver.ChromeOptions()
start_option.add_argument('--headless')
start_option.add_argument('--disable-gpu')
driver = webdriver.Chrome(options=start_option)

方式二:

start_option = webdriver.ChromeOptions()
start_option.headless = True
browser = webdriver.Chrome(options=start_option)

无界面启动的优点是省去了一些杂乱的启动画面,相当于在后台运行操作浏览器。同时缺点就是不利于编译和维护,只适用独立下载的浏览器驱动。

基本操作三

等待方式

强制等待:可以直接使用time下的sleep

隐式等待:告诉Web驱动程序在它报错之前等待一定的时间。默认设置为0。一旦设置了时间,Web驱动程序将在抛出异常之前等待该时间。

 driver.implicitly_wait(10)

隐式等待是全局生效的,隐式等待值的设置对 WebDriver 的整个生命周期有效,所以只要设置一次即可,不需要像time.sleep() 在每个地方都进行设置。

显式等待:显示等待会查找是否有name名为“kw”的元素,判断是否有name名为“bd”的元素。若是有,则执行下一步;若是没有,则等待0.5秒继续查找,直到超过了设置的最大时长然后报错。

 from selenium.webdriver.common.by import By
 from selenium.webdriver.support.ui import WebDriverWait
 from selenium.webdriver.support import expected_conditions as EC
 url = 'https://www.baidu.com'
 driver.get(url)
 try:
     element = WebDriverWait(driver,10).until(EC.presence_of_element_located((By.NAME, 'bd')))
     print('成功找到')
 finally:
     print('未找到指定元素')
     driver.quit()