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

07-操作元素(键盘和鼠标事件)

        在前面的文章中重点介绍了一些元素的定位方法,定位到元素后,就需要操作元素了。本篇总结了web页面常用的一些操作元素方法,可以统称为行为事件。

一、简单操作

  • 点击按钮(鼠标左键):click()
  • 清空输入框:clear()
  • 输入字符串:send_keys('xxx')
  • 获取属性值:get_attribute(attr)
  • 获取标签中的文本内容:text
  • 判断元素是否显示出来:is_displayed()
  • 窗口最大化:driver.maximize_window()
from selenium import webdriverdriver = webdriver.Chrome()
driver.get("https://www.baidu.com")print(driver.find_element('xpath', '//*[@id="s-top-left"]/a[2]').text)
driver.find_element("id", "kw").clear()
driver.find_element("id", "kw").send_keys('selenium')
driver.find_element("id", "su").click()
print(driver.find_element("id", "kw").get_attribute("value"))
print(driver.find_element("id", "kw").is_displayed())driver.quit()

二、submit提交表单

        在百度搜索框输入关键字后,可以直接按回车键搜索,也可以点搜索按钮搜索。submit()一般用于模拟回车键。

from selenium import webdriverdriver = webdriver.Chrome()
driver.get("https://www.baidu.com")driver.find_element("id", "kw").clear()
driver.find_element("id", "kw").send_keys('selenium')
driver.find_element("id", "kw").submit()

三、键盘操作

1)模拟键盘enter键

        键盘操作需要先导入如下模块:from selenium.webdriver.common.keys import Keys,然后使用send_keys(Keys.ENTER)模拟enter键。

from selenium import webdriver
from selenium.webdriver.common.keys import Keysdriver = webdriver.Chrome()
driver.get("https://www.baidu.com")driver.find_element("id", "kw").clear()
driver.find_element("id", "kw").send_keys('selenium')
# 模拟键盘enter键
driver.find_element("id", "kw").send_keys(Keys.ENTER)driver.quit()
2)其他常见的键盘操作
  • 键盘F1到F12:send_keys(Keys.F1),把F1改成对应的快捷键。
  • 复制Ctrl+C:send_keys(Keys.CONTROL, 'c') 
  • 粘贴Ctrl+V:send_keys(Keys.CONTROL, 'v') 
  • 全选Ctrl+A:send_keys(Keys.CONTROL, 'a') 
  • 剪切Ctrl+X:send_keys(Keys.CONTROL, 'x') 
  • 制表键Tab:  send_keys(Keys.TAB) 

四、鼠标操作

        鼠标不仅可以点击(click),还可执行其他操作,比如:将鼠标悬停在某个元素上、鼠标右击等。

1)鼠标悬停操作

        鼠标操作需要先导入如下模块:from selenium.webdriver.common.action_chains import ActionChains,然后使用move_to_element()实现鼠标悬停,最后使用perform()执行ActionChains中所有行为。这里以百度页面设置按钮为例。

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChainsdriver = webdriver.Chrome()
driver.get("https://www.baidu.com")ele = driver.find_element('xpath', '//*[@id="s-usersetting-top"]')
ActionChains(driver).move_to_element(ele).perform()driver.quit()
2)鼠标其他操作
  • 右击鼠标:context_click()
  • 双击鼠标:double_click()

五、定位悬浮菜单

        通过ajax获取的下拉菜单中的元素对象也可以进行定位,比如百度搜素提示:

from selenium import webdriver
import timedriver = webdriver.Chrome()
driver.get('https://www.baidu.com')driver.find_element('id', 'kw').send_keys('py')
time.sleep(1)
# 定位悬浮菜单
menus = driver.find_elements('css selector', '.bdsug-overflow.c-line-clamp1')for i in menus:print(i.text)menus[3].click()
http://www.lryc.cn/news/359179.html

相关文章:

  • 3389,为了保障3389端口的安全,我们可以采取的措施
  • Java集合【超详细】2 -- Map、可变参数、Collections类
  • 最佳 Mac 数据恢复:恢复 Mac 上已删除的文件
  • 芋道系统,springboot+vue3+mysql实现地址的存储与显示
  • 【C++】C++11新特性:列表初始化、声明、新容器、右值引用、万能引用和完美转发
  • 【IB Protocal Serial--WQE】
  • C++ 混合运算的类型转换
  • 线性时间选择
  • 【对算法期中卷子的解析和反思】
  • sudo apt update sudo: apt: command not found
  • ios:文本框默认的copy、past改成中文复制粘贴
  • Qt moc系统的黑魔法?
  • MyBatis开发中常用总结
  • Git基本使用教程(学习记录)
  • 【Linux-RTC】
  • 机器学习目录
  • React开发环境配置详细讲解-04
  • Go 如何通过 Kafka 客户端库 生产与消费消息
  • 【设计模式深度剖析】【B】【结构型】【对比】| 主要区别包装的不同
  • 信息学奥赛初赛天天练-17-阅读理解-浮点数精准输出与海伦公式的巧妙应用
  • mysql - 为什么MySQL不建议使用NULL作为列默认值?
  • 数据分析案例-在线食品订单数据可视化分析与建模分类
  • 构建LangChain应用程序的示例代码:2、使用LangChain库实现的AutoGPT示例:查找马拉松获胜成绩
  • 代码随想录算法训练营第三十四 |● 1005.K次取反后最大化的数组和 ● 134. 加油站 ● 135. 分发糖果
  • GB-T 43206-2023 信息安全技术 信息系统密码应用测评要求
  • 线程进阶-1 线程池
  • LabVIEW中PID控制器系统的噪声与扰动抑制策略
  • JavaWeb笔记整理+图解——Listener监听器
  • AIGC智能办公实战 课程,祝你事业新高度
  • 专科生听劝 这种情况你就不要专转本了