[Web自动化] Selenium简单使用

8.2 Selenium简单使用

在Selenium中,WebDriver是核心类,它代表了浏览器的一个实例。通过WebDriver,你可以控制浏览器执行各种操作,如打开网页输入文本点击按钮等。每个WebDriver实例都代表了一个独立的浏览器会话。
示例1:打开百度并搜索python

py 复制代码
from selenium import webdriver  
from selenium.webdriver.common.keys import Keys  
from selenium.webdriver.common.by import By  
import time
  
# 初始化WebDriver对象,这里以Chrome为例  
# 注意:如果ChromeDriver不在PATH中,需要指定完整路径  
driver = webdriver.Chrome()  
  
try:  
    # 打开百度网站  
    driver.get("https://www.baidu.com")  
      
    # 找到搜索框,这里通过id定位  
    search_box = driver.find_element(By.ID, "kw")  
      
    # 在搜索框中输入"python"  
    search_box.send_keys("python")  
      
    # 找到搜索按钮并点击,这里通过id定位  
    search_button = driver.find_element(By.ID, "su")  
    search_button.click()  
      
    # 等待搜索结果页面加载完成,这里简单等待5秒
	time.sleep(5) 
      
finally:  
    # 关闭浏览器
    driver.quit()

在这个示例中,我们首先导入了必要的Selenium库和模块,然后初始化了WebDriver对象,并打开了百度网站。接着,我们通过find_element方法定位到了搜索框和搜索按钮,分别进行了输入和点击操作。最后,我们关闭了浏览器实例。
示例2:访问「必应 (Bing)」并演示浏览器核心操作

py 复制代码
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.by import By
import time

# 初始化Chrome浏览器驱动
# 如果你用的是Edge/Firefox,可替换为 webdriver.Edge() / webdriver.Firefox()
driver = webdriver.Chrome()

try:
    # 1. 浏览器窗口最大化(实用操作:方便查看页面内容)
    driver.maximize_window()
    print("✅ 浏览器窗口已最大化")

    # 2. 打开必应搜索主页
    driver.get("https://cn.bing.com")
    print(f"✅ 已打开网页:{driver.title}")  # 获取当前页面标题并打印

    # 3. 定位搜索框并输入关键词(通过name属性定位,新手常用定位方式)
    search_box = driver.find_element(By.NAME, "q")
    search_box.send_keys("Selenium 新手教程")  # 输入搜索内容
    print("✅ 已在搜索框输入关键词")

    # 4. 模拟按下回车键提交搜索(替代点击按钮,更快捷)
    search_box.send_keys(Keys.ENTER)
    time.sleep(3)  # 等待搜索结果加载
    print(f"✅ 搜索结果页面标题:{driver.title}")

    # 5. 向下滚动页面(查看更多搜索结果,常用操作)
    # 方式1:模拟按PageDown键(按一次翻一页)
    driver.find_element(By.TAG_NAME, "body").send_keys(Keys.PAGE_DOWN)
    time.sleep(2)
    # 方式2:通过JS滚动(更灵活,滚动到指定位置)
    driver.execute_script("window.scrollTo(0, document.body.scrollHeight / 2);")
    time.sleep(2)

    # 6. 浏览器前进/后退操作
    driver.back()  # 回到必应主页
    time.sleep(2)
    print("✅ 已后退到必应主页")
    driver.forward()  # 回到搜索结果页
    time.sleep(2)
    print("✅ 已前进到搜索结果页")

    # 7. 获取页面关键信息(新手常用:提取文本/链接)
    # 定位第一个搜索结果的标题
    first_result = driver.find_element(By.CSS_SELECTOR, "li.b_algo h2 a")
    result_title = first_result.text  # 获取标题文本
    result_link = first_result.get_attribute("href")  # 获取链接地址
    print(f"\n🔍 第一个搜索结果:")
    print(f"标题:{result_title}")
    print(f"链接:{result_link}")

except Exception as e:
    # 捕获异常并打印(新手调试必备)
    print(f"❌ 运行出错:{e}")

finally:
    # 8. 关闭浏览器(无论是否出错,都确保关闭)
    time.sleep(3)  # 停留3秒,方便查看最终效果
    driver.quit()
    print("\n✅ 浏览器已关闭,程序结束")

这个示例覆盖了新手最常用的 8 类浏览器操作:窗口控制、页面跳转、输入 / 点击、滚动、前进后退、信息提取、异常处理、关闭浏览器。

代码加入了详细的打印信息和异常捕获,新手运行时能清晰看到每一步的执行结果,方便调试。

定位元素使用了 NAME/CSS_SELECTOR 等新手易理解的方式,同时标注了不同定位方式的特点,便于后续扩展学习。

相关推荐
databook10 小时前
棒棒糖图:当条形图遇上极简美学
python·数据分析·数据可视化
2301_8187320610 小时前
下载nvm后,通过nvm无法下载node,有文件夹但是为空 全局cmd,查不到node和npm 已解决
前端·npm·node.js
B站计算机毕业设计之家10 小时前
机器学习:Python豆瓣图书数据分析可视化系统 Echarts图表展示 爬虫数据采集 Flask 计算机毕业设计(建议收藏)✅
python·机器学习·数据分析·毕业设计·可视化·图书·书籍
赵民勇10 小时前
JavaScript中的this详解(ES5/ES6)
前端·javascript·es6
hhcccchh10 小时前
学习vue第九天 计算属性与侦听器
前端·vue.js·学习
我的golang之路果然有问题10 小时前
Mac 上的 Vue 安装和配置记录
前端·javascript·vue.js·笔记·macos
Blossom.11810 小时前
工业级扩散模型优化实战:从Stable Diffusion到LCM的毫秒级生成
开发语言·人工智能·python·深度学习·机器学习·stable diffusion·transformer
代码游侠10 小时前
应用——Linux FrameBuffer图形显示与多线程消息系统项目
linux·运维·服务器·开发语言·前端·算法
Lupino10 小时前
构建现代化的 Python PostgreSQL 工具库:psql_utils 的重构与优化之旅
python·postgresql