当前位置: 首页 > news >正文

Python中Selenium 和 keyboard 库的使用

文章目录

  • 一、Selenium
    • 基本使用
    • 2.等待元素加载
    • 常用操作
  • keyboard
    • 基本使用
    • 与 Selenium 联合使用

一、Selenium

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

基本使用

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

pip install selenium

2.配置浏览器驱动
Selenium 需要一个浏览器驱动来控制浏览器,比如 ChromeDriver(用于控制 Google Chrome)或 GeckoDriver(用于控制 Mozilla Firefox)。首先需要下载相应的驱动程序,并将其添加到系统路径中。
基本操作
3.一个简单的例子,展示了如何使用 Selenium 控制 Chrome 浏览器打开一个网页并进行一些基本操作:

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 提供了显式等待和隐式等待两种方式。
显式等待
显式等待是在代码中明确指定等待某个条件成立时再继续执行后续代码。常见的条件包括元素可见、元素可点击等。

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 会在这个时间范围内不断地重试,直到找到元素或超时。

driver.implicitly_wait(10)

常用操作

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

keyboard

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

基本使用

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

pip install keyboard

2.基本操作
发送按键

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 库触发特定的按键事件。

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()
http://www.lryc.cn/news/402078.html

相关文章:

  • 网络安全协议系列
  • .net core appsettings.json 配置 http 无法访问
  • opencv—常用函数学习_“干货“_11
  • WSL-Ubuntu20.04部署环境配置
  • 6Python的Pandas:数据读取与输出
  • ubuntu 网络 通讯学习笔记2
  • 深入理解JS中的事件委托
  • Camera Raw:首选项
  • HLS加密技术:保障流媒体内容安全的利器
  • 捷配总结的SMT工厂安全防静电规则
  • UE4-初见虚幻引擎
  • 基于Vue CLI 3构建Vue3项目(Vue2也可参考)
  • Midjourney 绘画提示词汇总:让你的 AI 绘画与众不同
  • React和Vue.js的相似性和差异性是什么?
  • Nginx 和 PHP(特别是使用 Swoole 扩展)的配置和调优
  • Kafka Producer发送消息流程之消息异步发送和同步发送
  • Flutter 状态管理调研总结
  • 入门C语言只需一个星期(星期二)
  • 切换node版本
  • 【常见开源库的二次开发】基于openssl的加密与解密——Base的编解码(二进制转ascll)(二)
  • ssrf复习(及ctfshow351-360)
  • 请求通过Spring Cloud Gateway 503
  • C++代码_让室友坑我
  • AG32 的MCU与FPGA的主频可以达到568MHz吗
  • 怎样减少视频的容量 怎样减少视频内存保持清晰度
  • 谈一谈一条SQL的查询、更新语句究竟是如何执行的?
  • 自动驾驶AVM环视算法–全景和标定全功能算法实现和exe测试demo
  • 【Docker 系列】学习路线
  • 蓝色系信息工作室建站网站源码系统 带模版手机端 带完整的源代码包以及搭建部署教程
  • 什么是带宽限制,如何影响服务器数据传输?