Selenium 元素常用操作方法(键盘和鼠标事件)
一、简单操作
- click():点击
- send_keys():输入
- clear():清空
- submit():提交表单
- size:返回元素的尺寸
- text:获取元素的文本
- get_attribute():获取元素的属性值
- title:获取当前页面标题
- current_url:获取当前页面URL
- is_displayed():返回元素是否可见
输入、清空、点击操作
代码:
# coding = utf-8
from time import sleep
from selenium import webdriver
# 驱动文件路径
driverfile_path = r'D:\coship\Test_Framework\drivers\chromedriver.exe'
# 启动浏览器
driver = webdriver.Chrome(executable_path=driverfile_path)
# 打开百度首页
driver.get(r'https://www.baidu.com/')
driver.find_element_by_css_selector("#kw").send_keys("selenium")
sleep(2)
driver.find_element_by_css_selector("#kw").clear()
sleep(2)
driver.find_element_by_css_selector("#kw").send_keys("selenium")
driver.find_element_by_css_selector("#su").click()
# 等待2秒退出浏览器进程
sleep(2)
driver.quit()
submit()提交表单操作
一般用于模拟回车键(Enter)
代码:
# coding = utf-8
from time import sleep
from selenium import webdriver
# 驱动文件路径
driverfile_path = r'D:\coship\Test_Framework\drivers\chromedriver.exe'
# 启动浏览器
driver = webdriver.Chrome(executable_path=driverfile_path)
# 打开百度首页
driver.get(r'https://www.baidu.com/')
driver.find_element_by_css_selector("#kw").send_keys("selenium")
# 模拟回车键
driver.find_element_by_css_selector("#kw").submit()
# 等待3秒退出浏览器进程
sleep(3)
driver.quit()
获取元素信息操作
代码:
# coding = utf-8
from time import sleep
from selenium import webdriver
# 驱动文件路径
driverfile_path = r'D:\coship\Test_Framework\drivers\chromedriver.exe'
# 启动浏览器
driver = webdriver.Chrome(executable_path=driverfile_path)
# 打开百度首页
driver.get(r'https://www.baidu.com/')
# 获取搜索输入框尺寸
size = driver.find_element_by_css_selector("#kw").size
print("size=",size)
# 获取页面底部备案信息
text = driver.find_element_by_css_selector("#cp").text
print("text=",text)
# 获取元素的属性值,如id,name,class,type以及其他属性
attribute = driver.find_element_by_css_selector("#kw").get_attribute("class")
print("attribute=",attribute)
# 检查元素是否可见,可见返回True,不可见返回False
result = driver.find_element_by_css_selector("#kw").is_displayed()
print("resulr=",result)
# 获取当前页面标题
title = driver.title
print("title=",title)
# 获取当前页面URL
url = driver.current_url
print("url=",url)
# 等待2秒退出浏览器进程
sleep(2)
driver.quit()
二、键盘操作
webdriver提供了键盘上几乎所有的按键方法,使用前需要导入Keys类
from selenium.webdriver.common.keys import Keys
代码:
# coding = utf-8
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.keys import Keys
# 驱动文件路径
driverfile_path = r'D:\coship\Test_Framework\drivers\chromedriver.exe'
# 启动浏览器
driver = webdriver.Chrome(executable_path=driverfile_path)
# 打开百度首页
driver.get(r'https://www.baidu.com/')
# 输入内容
driver.find_element_by_css_selector("#kw").send_keys("seleniumm")
# 删除一个字符
driver.find_element_by_css_selector("#kw").send_keys(Keys.BACK_SPACE)
# 输入空格键+"教程"
driver.find_element_by_css_selector("#kw").send_keys(Keys.SPACE)
driver.find_element_by_css_selector("#kw").send_keys("教程")
# 全选输入框内容
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'a')
# 剪切内容
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,'x')
# 粘贴内容
driver.find_element_by_css_selector("#kw").send_keys(Keys.CONTROL,"v")
# 回车键
driver.find_element_by_css_selector("#kw").send_keys(Keys.ENTER)
# 等待3秒退出浏览器进程
sleep(3)
driver.quit()
三、鼠标操作
同样,webdriver也提供了一整套鼠标操作方式,如:右击,双击,悬停,拖动等,使用前需要导入ActionChains类。
from selenium.webdriver.common.action_chains import ActionChains
ActionChains类提供了鼠标操作的常用方法:
- perform():执行所有ActionChains中存储的行为
- context_click():右击
- double_click():双击
- drag_and_drop:拖动
- move_to_element():鼠标悬停
代码:
# coding = utf-8
from time import sleep
from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains
# 驱动文件路径
driverfile_path = r'D:\coship\Test_Framework\drivers\chromedriver.exe'
# 启动浏览器
driver = webdriver.Chrome(executable_path=driverfile_path)
# 打开百度首页
driver.get(r'https://www.baidu.com/')
# 鼠标悬停在百度首页设置上
set = driver.find_element_by_link_text("设置")
ActionChains(driver).move_to_element(set).perform()
# 等待3秒退出浏览器进程
sleep(3)
driver.quit()
Selenium 元素常用操作方法(键盘和鼠标事件)的更多相关文章
- WPF之路-键盘与鼠标事件 - 简书
原文:WPF之路-键盘与鼠标事件 - 简书 键盘事件 事件类型分为以下几个类型 生命周期事件:在元素加载与卸载的时候发生 鼠标事件:鼠标动作 键盘事件:键盘动作 手写笔事件:适用于win7以上的系统 ...
- winform中键盘和鼠标事件的捕捉和重写(转)
在 编写winform应用程序时,有时需要无论在哪个控件获取焦点时,对某一个键盘输入或者鼠标事件都进行同样的操作.比如编写一个处理图片的应用程序时, 希望无论当前哪个控件获得焦点,当用户按上.下.左. ...
- winform中键盘和鼠标事件的捕捉和重写
在编写winform应用程序时,有时需要无论在哪个控件获取焦点时,对某一个键盘输入或者鼠标事件都进行同样的操作.比如编写一个处理图片的应用程序时,希望无论当前哪个控件获得焦点,当用户按上.下.左.右键 ...
- cocos2d-x 键盘和鼠标事件
出了菜单可以响应用户事件外,cocos2d中的层(Layer)也可以响应事件.层能够自动响应窗口事件,这些事件主要是键盘和鼠标事件,cocos2d中事件处理是通过Pyglet的事件处理完成的. 1.键 ...
- WPF嵌入Unity3D之后,unity3D程序的键盘和鼠标事件无法触发(3D程序的焦点无法激活)的解决方案
目前最通用的客户端调用3D的方式,就是WPF程序通过Process启动Unity3D的exe进程,直接上代码: //开启3D进程 internal void Create3DProcess(strin ...
- 自动化测试-8.selenium操作元素之键盘和鼠标事件
前言 在前面的几篇中重点介绍了一些元素的定位方法,定位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...
- Selenium2+python自动化12-操作元素(键盘和鼠标事件)
前言 在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...
- Selenium2学习(八)-- 操作元素(键盘和鼠标事件)
前言 在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...
- Selenium2+python自动化12-操作元素(键盘和鼠标事件)【转载】
前言 在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...
随机推荐
- neo4j3.0多数库切换
动机 类似与关系型数据库,创建了多个数据库 想要像访问关系型数据库那样来可以无缝切换多个数据库 然而,在neo4j 3.0都暂时没有办法做到:每次启动neo4j,它只能读取一个数据库.比如,现在有两个 ...
- Linux-usermod:增加已建立用户的用户组
usermod --help -g, --gid GROUP force use GROUP as new primary group -G, --groups GROUPS new list of ...
- 由对称性解2-SAT问题
由对称性解2-SAT问题 (by 伍昱,03年IOI国家集训队论文ppt) 2-SAT: 2-SAT就是2判定性问题,是一种特殊的逻辑判定问题. 2-SAT问题有何特殊性?该如何求解? 我们从一道例题 ...
- jumpserver-1.4.8安装步骤
1. 组件说明 Jumpserver 为管理后台, 管理员可以通过 Web 页面进行资产管理.用户管理.资产授权等操作, 用户可以通过 Web 页面进行资产登录, 文件管理等操作 koko 为 SSH ...
- 8.jQuery之上下滑动效果
上下滑动:slideDown slideUp slideToggle <style> div { width: 150px; height: 300px; background-co ...
- java springmvc poi 导出Excel,先简单记录,后期会详细描写
POI jar包下载 : http://poi.apache.org/download.html jsp代码 <%@ page language="java" content ...
- ES6 环境的搭建
安装babel npm install --g babel-cli 在项目目录下输入 npm init -y 会自动创建package.json文件 babel src/index.js -o dis ...
- 生成二维码(java后端)
需要引入2个jar包: <dependency> <groupId>com.google.zxing</groupId> <artifactId>jav ...
- mysql在docker下运行,出现中文乱码
- Scala学习笔记(3)
数组 ----------------------------------- 0.若长度固定则用Array,若长度可能变化则使用ArrayBuffer 1.提供初始值的时候不要使用new. 2.用() ...