selenium下 按键操作、时间等待、点击事件基本操作

快速上手 Selenium:浏览器自动化的必学基本操作 Selenium 支持多种浏览器,如 Chrome、Firefox、Safari 等。Selenium 是一个强大的浏览器自动化工具,能够帮助你模拟人工操作,执行一系列的测试和任务。在这一部分,我们将从最基础的操作开始,带你一步一步实现浏览器自动化。Selenium 支持多种浏览器,如 Chrome、Firefox、Safari 等。Selenium 还允许我们获取网页的一些基本信息,比如网页的标题、当前 URL 等。找到元素后,我们可以对它们进行各种操作,比如点击、输入文本、获取文本内容等。 阅读详情

1.按键操作

from selenium.webdriver.common.keys import Keys
from selenium import webdriver
import time

driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
time.sleep(3)
# 找到输入框 并且输入指定内容
driver.find_element_by_id('kw').send_keys('selenium')
time.sleep(3)
# ctrl+a 全选输入框的全部内容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'a')
time.sleep(3)
# 清除输入框内容
driver.find_element_by_id('kw').send_keys(Keys.CONTROL,'x')

time.sleep(3)
driver.find_element_by_id('kw').send_keys(u'爬虫技巧')
time.sleep(3)
driver.find_element_by_id('su').click()

time.sleep(3)
# 退出浏览器
driver.quit()

 2.时间等待

    selenium由网页驱动浏览器进行操作,速度慢是一大特点,经常会出现代码执行完了,但是网页还没加载完的情况。里面的标签还没显示出来,如果这是对立面的标签进行操作,就会爆出异常:NoSuchElementExpection。

解决办法:时间休眠:time.sleep-- 不管网页有没有加载完毕,一定要休眠够指定的秒数。

from selenium.webdriver.support.ui import WebDriverWait
from selenium import webdriver

driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# driver.find_element_by_id('kw').send_keys('hello world')

button = driver.find_element_by_id('su')
# WebDriverWait 网页等待
# 值1 等待的对象
# 值2 等待的时间
# WebDriverWait经常和until以及 until not 一起使用  until 直到。。。。。。。
# lambda 匿名函数 is_displayed()是否 已经显示了
is_visible  = WebDriverWait(driver,10).until(lambda driver : button.is_displayed())
print(is_visible)
button.click()

WebDriverWait 和 time.sleep 异同:

    1.都是让程序等待指定的时间;

    2.time的时间是固定的,时间长短不会随着标签的加载速度而改变;而WebDriverWait 时间是不固定的,等待时间的长短 ,要看标签的加载时间和指定的固定时间;

    3.如果在指定时间内,标签仍然没有加载出来,那么两者都会爆出异常。

隐性时间:implicility_wait

3.点击事件

from selenium import webdriver
# action 行动 chains 链
from selenium.webdriver.common.action_chains import  ActionChains
from selenium.webdriver.support.ui import WebDriverWait
import time
driver = webdriver.Firefox()
driver.get('http://www.baidu.com')
# 右键点击
# driver.find_element_by_class_name('index-logo-src')
logo = driver.find_element_by_xpath('//div[@id="lg"]/img')
# 等待直到目标标签出现
# logo = driver.find_element_by_css_selector('#lg >img')
WebDriverWait(driver,10).until(lambda driver : logo.is_displayed())
# 双击事件
ActionChains(driver).double_click(logo).perform()


# context 上下文
# content 内容
# context_click 右击
action = ActionChains(driver).context_click(logo)
# 操作时间会跑到perform队列里面 perform实现
# action.perform()
# time.sleep(5)
# 鼠标移动
more = driver.find_element_by_class_name('bri')
WebDriverWait(driver,10).until(lambda driver : more.is_displayed())
ActionChains(driver).move_to_element(more).perform()

 

python3 selenium的三种等待加载方式的优缺点 1、显式等待 等待一定条件发生后再进一步执行后面的动作,与time库合用. 现在的大多数的Web应用程序是使用Ajax技术。当一个页面被加载到浏览器时, 该页面内的元素可以在不同的时间点被加载。这使得定位元素变得困难, 如果元素不再页面之中,会抛出 ElementNotVisibleException 异常。 使用 waits, 我们可以解决这个问题。waits提供了一些操作之间的时间间隔- ... 阅读详情

相关推荐

Java+Selenium框架:Actions类模拟鼠标/按键操作web

通过Selenium的Actions类,我们可以方便地模拟用户在Web页面上的鼠标和键盘操作,从而实现更加逼真的自动化测试。在实际应用中,结合具体的测试场景,可以灵活使用这些操作来模拟用户的实际行为。

我先测了 4129

python selenium等待元素被点击后执行下一步操作,如果未被点击或找到元素则继续等待响应...

可以使用 Selenium 的 WebDriverWait 类来等待元素被点击后执行下一步操作。 例如,你可以使用以下代码来等待元素在页面上被点击后执行下一步操作: from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.web...

weixin_35750483的博客 1023

从FreeCAD到BIMBase:PlaneGCS约束求解器的移植使用指南

本文为BIMBase平台的开发者提供了一份详细的PlaneGCS几何约束求解器移植与集成指南。文章深入探讨了如何从FreeCAD中提取PlaneGCS核心代码,并将其适配到BIMBase的C++二次开发环境中,重点解决了内存管理、数据模型桥接、约束抽象以及性能调优等关键问题,旨在帮助开发者构建稳定高效的参数化设计模块。

weixin_29213525的博客 321

Selenium三种等待方式的使用!

UI自动化测试,大多都是通过定位页面元素来模拟实际的生产场景操作。但在编写自动化测试脚本中,经常出现元素定位不到的情况,究其原因,无非两种情况:1、有;2、没有设置等待。因为代码运行速度和浏览器加载渲染速度,不是一个量级,所以导致了这种情况发生。在做WEB自动化时,一般要等待页面元素加载完成后,才能执行操作,否则会报找不到元素的错误,这样就要求我们在有些场景下加等待时间:显式等待、隐式等待、强制等待。

2301_77709772的博客 235

工业数据采集实战:用open62541库读写PLC的OPC UA节点(避坑指南)

本文详细介绍了如何使用open62541库实现工业PLC的OPC UA节点数据采集,涵盖环境搭建、节点读写优化及生产环境故障排查。通过订阅模式和多节点读写技术,显著提升数据采集效率与稳定性,适用于智能制造和工业物联网场景。

weixin_30598225的博客 399

地平线RDKX3初始配置与USB无线网卡

地平线X3无线网卡配置

Richard_Mei的博客 4081

Python 中使用 Selenium 单击按钮

我们可以使用 Python 中的 selenium 包在几乎所有主要的 Web 浏览器上自动执行任务。我们可以使用此包检索元素、填写表单、单击按钮以及执行其他此类操作。本篇文章将介绍如何在 Python 中使用 selenium 单击网页上的按钮。

迹忆客 2716

物联网技术-第2章-物联网技术架构

• 物联网具有很强的异构性• 为实现异构设备之间的互联、互通与互操作,物联网需要以一个开放的分层的可扩展的为框架。

m0_73804764的博客 2977

selenium点击事件失效

解决方式一:time.sleep(3),等待一定时间,可能是按钮还未加载完毕。 解决方式二:使用selenium执行js js = 'document.getElementsByClassName("el-button el-button--primary el-button--small")[0].click()' chrome.execute_script(js) ...

Good Luck 9万+

Matlab之fdesign的应用说明

fdesign 是 MATLAB 中用于数字滤波器设计的工具(属于),它提供了一种系统化的方式来定义滤波器参数并生成相应的滤波器。指定滤波器的频率、幅度等参数。例如,设计一个低通滤波器:Fs = 1000;% 采样率 (Hz)% 通带截止频率% 阻带截止频率Apass = 1;% 通带衰减 (dB)Astop = 60;% 阻带衰减 (dB)

嵌入式老牛的博客 1052

数字逻辑Fundamentals of Digital Logic with Verilog Design | 3rd Edition Solutins Chapter 2(step by step)

数字逻辑第二章习题和详细步骤 2-1 ~ 2-78

weixin_62651190的博客 2308

python-selenium的使用

下载浏览器驱动程序:http://chromedriver.storage.googleapis.com/index.html 查看驱动和浏览器版本的关系:http://blog.youkuaiyun.com/huilan_same/article/details/51896672 常用方法 浏览器创建 Selenium支持非常多的浏览器,如Chrome、Firefox、Edge等.另外,也支持无界面浏览器。 from selenium import webdriver browser = webdriv

qq_34577961的博客 1264

化工设计软件:AutoCAD Plant 3D二次开发_(1).AutoCADPlant3D概述

AutoCAD Plant 3D 是一款专为化工行业设计的三维工厂设计和建模软件。它基于AutoCAD平台,提供了强大的三维建模功能和专业的化工设计工具,帮助工程师和设计师在工厂设计过程中提高效率和准确性。AutoCAD Plant 3D不仅能够创建详细的三维模型,还可以进行管道设计、设备布置、支架设计等复杂任务。通过上述案例,我们可以看出 AutoCAD Plant 3D 在化工厂设计中的强大功能和优势。该软件不仅提供了丰富的建模工具和专业的设计功能,还支持二次开发,使用户能够根据具体需求进行定制化操作。

kkchenjj的博客 1104

Python——按键操作、时间等待、点击事件、标签选择

一、按键操作        selenium提供了比较完整的按键操作,在使用按键操作之前引入包from selenium.webdriver.commen.keys import Keys,然后就可以模拟按键操作。以进入百度网页为例,进行具体的按键操作。 from selenium.webdriver.common.keys import Keys from selenium import ...

ljj950408的博客 1万+

通用具身智能仿真平台桃源2.0,三行代码定义任务,数采效率最高提升20倍

木木-具身Xbot具身知识库2025年03月13日 17:40浙江在首个“城市级”大规模仿真平台GRUtopia1.0的基础上,升级后的GRUtopia2.0凭借通用模块化框架、场景资产自动化生成、高效数据采集系统三大革新,进一步向通用化、多样化、易用化迈进。仅通过单一平台、简单代码输入,即可实现仿真环境中机器人灵活训练,提升数据采集效率,为研究者提供了“一站式”具身智能开发解决方案。

具身机器人和通用AI 817

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

selenium中按键操作、时间等待、点击事件、window切换基础操作介绍

selenium由网页驱动浏览器进行操作,速度慢是一大特点,经常会出现代码执行完毕,但是网页内容还没有加载完毕,里面的标签还没有显示出来,如果这个时候操作里面的标签就会抛出异常NoSuchElementExpection 解决的方法:时间休眠 time.sleep()(无论页面的内容有没有加载完毕,一定要休眠够指定的秒数) 一、按键操作 1.在按键操作之前一定要引入与之对应的包(我这里以百度...

qq_42543254的博客 1567

C# WinForm 基于DirectShow.dll编写的程序,可边预览边保存视频,音频和图片

基于微软的DirectShow.dll的二次开发1.自动识别连接的摄像头跟麦克风且可以对其进行选择(默认选中第一个)2.可录制wmv和avi两种格式的视频并且都带有音频,avi可以录制的分辨率和帧数进行选择,wmv默认进行了淸晰度优化如不喜欢可去除代码中有相关提示3.可在预览点开之后进行拍照,也可边录制视频边拍照4.添加了视频和音频的压缩功能(酌情使用)这次二次开发发现C#对DirectShow的相关信息太少,这次做完也不敢藏私共享出来,还望大家指正

Selenium 元素基本操作

click() 触发当前元素点击事件 clear() 清空内容 sendKeys() 向文本框一类的元素中写入内容 按键操作 ctrl + a 全选 element.sendKeys(Keys.CONTROL,"a") ctrl + x 剪切 element.sendKeys(Keys.CONTROL,"x") ctrl + c 复制 element.sendKeys(Keys.CONTROL,"c") ctrl + v 粘贴 ...

瘦尾巴的胖头鱼 3494

计算机控制技术及应用

《计算机控制技术及应用》通过总结作者的科研成果和吸收国内外的先进理论、方法和技术,以计算机控制系统的网络化、开放化、智能化和集成化发展趋势为主线索,主要介绍计算机控制系统的基本概念和计算机控制系统的典型形式,计算机控制系统的数学描述与基本分析方法,以及数字PID控制器、最少拍控制系统、达林算法、状态变量设计法等设计方法及其各种改进算法。重点突出计算机控制系统输入输出通道接口的设计方法和典型控制系统的设计案例与实现方法等。

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

按键操作,时间等待,点击事件

按键事件: # common 共同的:公共的 # keys 键 from selenium.webdriver.common.keys import Keys from selenium import webdriver import time driver = webdriver.Firefox() driver.get('http://www.baidu.com') # time.s...

青衫折扇的博客 918

Selenium之操作浏览器、元素等待、窗体切换和弹窗处理

浏览器操作 控制浏览器窗口大小 浏览器设置最大化 driver.maximize_window() 设置浏览器显示大小 driver.set_window_size(1480,800) 控制浏览器前进后退 后退:driver.back() 前进:driver.forward() 效果演示: 模拟浏览器刷新 driver.refresh() 简单的元素操作 最常用的几个方法: clear()清除文本 send_keys(*va...

专注测试领域知识分享和技能提升 4108

selenium之webdriver的按键操作

1、要用到的一个按键库 from selenium.webdriver.common.keys import Keys 2、该类里面只有按键属性,这里就列出部分,其余的去看源码 class Keys(object): """ Set of special keys codes. """ NULL = '\ue000' CANCEL = '\ue00...

jmxie的博客 1082

selenium 的详细用法

1 按键操作 from selenium.webdriver.common.keys import Keys from selenium import webdriver import time driver = webdriver.Chrome() driver.get('http://www.baidu.com') time.sleep(3) driver.find_element_...

江玉郎 2995

selenium--模拟键盘按键操作

selenium–模拟键盘按键操作 导入 from selenium.webdriver.common.keys import Keys 格式:Keys.XXX 一般这么用:send_keys(Keys.XXX) 分类 Keys.BACK_SPACE:回退键(BackSpace) Keys.TAB:制表键(Tab) Keys.ENTER:回车键(Enter) Keys.SHIFT:大小写转换键(Shift) Keys.CONTROL:Control键(Ctrl) Keys.ALT:ALT键(Alt) Ke

qq_39878747的博客 7828

selenium特殊操作:键盘时间,切换表单,多窗口切换,等待

隐式等待,一旦设置,对于后续的每一个元素都有效,可以设置最大超时时间,如果执行到那个元素加载出来了就继续往后执行,如果发现某元素没有加载出来呢?显示等待,是给单独某个元素设置的,(一般情况下隐式等待不要加入设置10s大部分元素都能在10s内加载出来,但是唯独有 一个元素无法在10s内加载出来,那么就给这个元素设置显示等待)强制等待就是time.sleep(5),这个方法是time模块提供的,并不是selenium这个框架提供的,其实设置的线程的休眠,它是不管后面元素是否加载出来,都会等待5秒钟。

colala6688的博客 581

selenium的基本运用

selenium 是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7, 8, 9, 10, 11),Mozilla Firefox,Safari,Google Chrome,Opera等。这个工具的主要功能包括:测试与浏览器的兼容性——测试你的应用程序看是否能够很好得工作在不同浏览器和操作系统之上。测试系统功能——创建回归...

qq_42543312的博客 753

java-selenium 实战详解

selenium 作为现在最主流的UI自动化框架,基本成为了自动化测试必备的技能,本文是笔者在学习的时候做的笔记,也是实战内容。 一、selenium相关配置: 1、官方文档地址: https://www.selenium.dev/documentation/zh-cn/ 2、谷歌各版本下载 http://www.chromedownloads.net/chrome64win/ 3、谷歌驱动下载 http://npm.taobao.org/mirrors/chromedriver 4、禁止谷歌浏览器更新 h

chenjxj123的博客 1万+

selenium 浏览器的相关操作及等待操作(二)

涉及到的库 类名 导入 说明 WebDriverWait from selenium.webdriver.support.ui import WebDriverWait 显式等待 expected_conditions from selenium.webdriver.support import expected_conditions 与显示等待连用 Options from selenium.webdriver.chrome.options import Options 浏览器设置

qq_42947060的博客 510
上一篇: 正则、xpath、bs4三者区别
下一篇: scrapy安装教程
想不到叫啥好
博客等级 码龄8年 7粉丝 23原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值