Python中Selenium 和 keyboard 库的使用

文章目录

一、Selenium

Selenium 是一个用于浏览器自动化的工具。它可以模拟用户与网页的交互,如点击按钮、填写表单、导航页面等。Selenium 支持多种编程语言,包括 Python、Java、C# 等。

基本使用

1.安装 Selenium 使用 pip 安装 Selenium:

bash 复制代码
pip install selenium

2.配置浏览器驱动

Selenium 需要一个浏览器驱动来控制浏览器,比如 ChromeDriver(用于控制 Google Chrome)或 GeckoDriver(用于控制 Mozilla Firefox)。首先需要下载相应的驱动程序,并将其添加到系统路径中。

基本操作

3.一个简单的例子,展示了如何使用 Selenium 控制 Chrome 浏览器打开一个网页并进行一些基本操作:

python 复制代码
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.chrome.options import Options
import time

# 配置 Chrome 选项
chrome_options = Options()
chrome_options.add_argument("--disable-blink-features=AutomationControlled")

# 初始化 WebDriver
driver = webdriver.Chrome(executable_path='path/to/chromedriver', options=chrome_options)

# 打开网页
driver.get('https://www.baidu.com')

# 查找元素并进行操作
search_box = driver.find_element(By.NAME, 'q')
search_box.send_keys('Selenium Python')
search_box.send_keys(Keys.RETURN)

time.sleep(3)

# 关闭浏览器
driver.quit()

# 二、使用步骤
## 1.引入库
代码如下(示例):

```c
import numpy as np
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import warnings
warnings.filterwarnings('ignore')
import  ssl
ssl._create_default_https_context = ssl._create_unverified_context

2.等待元素加载

在自动化浏览器操作时,某些操作可能需要等待页面加载或元素出现。Selenium 提供了显式等待和隐式等待两种方式。

显式等待

显式等待是在代码中明确指定等待某个条件成立时再继续执行后续代码。常见的条件包括元素可见、元素可点击等。

python 复制代码
from selenium.webdriver.support.ui import WebDriverWait
from selenium.webdriver.support import expected_conditions as EC

**显式等待**
wait = WebDriverWait(driver, 10)
element = wait.until(EC.presence_of_element_located((By.ID, 'element_id')))

隐式等待

隐式等待是设置一个全局等待时间,在找不到元素时,Selenium 会在这个时间范围内不断地重试,直到找到元素或超时。

python 复制代码
driver.implicitly_wait(10)

常用操作

  • 查找元素
python 复制代码
element = driver.find_element(By.ID, 'element_id')
elements = driver.find_elements(By.CLASS_NAME, 'element_class')
  • 点击元素
python 复制代码
element.click()
  • 输入文本
python 复制代码
element.send_keys('text to input')
  • 获取元素属性
python 复制代码
attribute_value = element.get_attribute('attribute_name')
  • 切换窗口/标签
python 复制代码
driver.switch_to.window(driver.window_handles[1])

keyboard

keyboard 是一个用于模拟键盘事件的 Python 库。它可以用来发送按键、监听按键事件等。

基本使用

1.安装 keyboard 使用 pip 安装 keyboard:

bash 复制代码
pip install keyboard

2.基本操作
发送按键

python 复制代码
import keyboard

# 发送单个按键
keyboard.press_and_release('shift + a')

# 发送多个按键
keyboard.write('Hello, World!')
监听按键
python
复制
import keyboard

# 定义按键事件处理函数
def on_key_event(event):
    print(f'Key {event.name} pressed at {event.time}')

# 监听按键
keyboard.on_press(on_key_event)

# 保持程序运行
keyboard.wait('esc')

与 Selenium 联合使用

在自动化测试中,有时可能需要模拟键盘事件,这时可以将 Selenium 与 keyboard 库结合使用。例如,在捕获某些异常情况时,可以使用 keyboard 库触发特定的按键事件。

python 复制代码
import keyboard
from selenium import webdriver

# 初始化 WebDriver
driver = webdriver.Chrome(executable_path='path/to/chromedriver')

# 打开网页
driver.get('https://www.baidu.com')

# 等待某一时刻按下特定键
while True:
    if keyboard.is_pressed('p'):
        print('Key "p" pressed')
        break

# 关闭浏览器
driver.quit()
相关推荐
databook12 小时前
Manim实现闪光轨迹特效
后端·python·动效
Juchecar14 小时前
解惑:NumPy 中 ndarray.ndim 到底是什么?
python
用户83562907805114 小时前
Python 删除 Excel 工作表中的空白行列
后端·python
Json_14 小时前
使用python-fastApi框架开发一个学校宿舍管理系统-前后端分离项目
后端·python·fastapi
数据智能老司机20 小时前
精通 Python 设计模式——分布式系统模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——并发与异步模式
python·设计模式·编程语言
数据智能老司机1 天前
精通 Python 设计模式——测试模式
python·设计模式·架构
数据智能老司机1 天前
精通 Python 设计模式——性能模式
python·设计模式·架构
c8i1 天前
drf初步梳理
python·django
每日AI新事件1 天前
python的异步函数
python