一、简单操作


  • 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 元素常用操作方法(键盘和鼠标事件)的更多相关文章

  1. WPF之路-键盘与鼠标事件 - 简书

    原文:WPF之路-键盘与鼠标事件 - 简书 键盘事件 事件类型分为以下几个类型 生命周期事件:在元素加载与卸载的时候发生 鼠标事件:鼠标动作 键盘事件:键盘动作 手写笔事件:适用于win7以上的系统 ...

  2. winform中键盘和鼠标事件的捕捉和重写(转)

    在 编写winform应用程序时,有时需要无论在哪个控件获取焦点时,对某一个键盘输入或者鼠标事件都进行同样的操作.比如编写一个处理图片的应用程序时, 希望无论当前哪个控件获得焦点,当用户按上.下.左. ...

  3. winform中键盘和鼠标事件的捕捉和重写

    在编写winform应用程序时,有时需要无论在哪个控件获取焦点时,对某一个键盘输入或者鼠标事件都进行同样的操作.比如编写一个处理图片的应用程序时,希望无论当前哪个控件获得焦点,当用户按上.下.左.右键 ...

  4. cocos2d-x 键盘和鼠标事件

    出了菜单可以响应用户事件外,cocos2d中的层(Layer)也可以响应事件.层能够自动响应窗口事件,这些事件主要是键盘和鼠标事件,cocos2d中事件处理是通过Pyglet的事件处理完成的. 1.键 ...

  5. WPF嵌入Unity3D之后,unity3D程序的键盘和鼠标事件无法触发(3D程序的焦点无法激活)的解决方案

    目前最通用的客户端调用3D的方式,就是WPF程序通过Process启动Unity3D的exe进程,直接上代码: //开启3D进程 internal void Create3DProcess(strin ...

  6. 自动化测试-8.selenium操作元素之键盘和鼠标事件

    前言 在前面的几篇中重点介绍了一些元素的定位方法,定位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...

  7. Selenium2+python自动化12-操作元素(键盘和鼠标事件)

    前言 在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...

  8. Selenium2学习(八)-- 操作元素(键盘和鼠标事件)

    前言 在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...

  9. Selenium2+python自动化12-操作元素(键盘和鼠标事件)【转载】

    前言 在前面的几篇中重点介绍了一些元素的到位方法,到位到元素后,接下来就是需要操作元素了.本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件 有些web界面的选项菜单需要鼠标悬停在某个元素 ...

随机推荐

  1. spring+redis实例(二)

    这一篇redis实例是基于序列化储存-(写入对象,读取对象) 在spring+redis(一)中我们介绍了在spring中怎么去操作储存redis,基于string的储存,今天我们介绍一下redis基 ...

  2. Select 和Alert

    Select 和Alert使用前都必须先导入 from selenium.webdriver.common.alert import Alert from selenium.webdriver.sup ...

  3. spring-cloud学习BUG

    1.com.sun.jersey.api.client.ClientHandlerException: java.net.ConnectException: Connection refused: c ...

  4. Ubuntu分区方案(菜鸟方案、常用方案和进阶方案)

    菜鸟方案 “/”与swap两个分区就可以应付绝大多数的应用 常用方案 分为3个区 1. 挂载点/:主分区:安装系统和软件:大小为30G:分区格式为ext4: 2. 挂载点/home:逻辑分区:相当于“ ...

  5. LAMP,LNMP 环境编译参数配置详解

    1)查看 web 服务的编译参数 a.查看 nginx 的编译参数: /home/oldboy/run/nginx/sbin/nginx -V 范例 1: [root@VM-001 ~]# /home ...

  6. 跨域 (3) window.name

    window对象有一个name属性,该属性有一个特征:即在一个窗口的生命周期内,窗口载入的所有的页面都是共享一个window.name的,每一个页面对window.name都有读写的权限,window ...

  7. 【洛谷P4393】Sequence

    题目大意:给定一个长度为 N 的序列,每次可以合并相邻的两个元素,代价是两者中较大的值,合并之后的值也为两者较大的值,求合并 N-1 次后的最小代价是多少. 题解: 除了最大值以外,每个值均只会被合并 ...

  8. pandas Series和dataframe

    DataFrame是一个表格型数据结构,与Series不同的是,DataFrame可以含有一组或者有序的列,每列可以使不同的值的类型,它可以被看做成Series的字典.

  9. Redis 历史版本下载URL

    Redis 历史版本下载URL: http://download.redis.io/releases/ Redis和RedisClient 官网下载方式: https://blog.51cto.com ...

  10. 2019年7月25日 shell练习--PAT题目1006:换个格式输出整数(失败案例)

    让我们用字母 B 来表示“百”.字母 S 表示“十”,用 12...n 来表示不为零的个位数字 n(<),换个格式来输出任一个不超过 3 位的正整数.例如 234 应该被输出为 BBSSS123 ...