首页 > 其他分享 >selenium之鼠标键盘操作

selenium之鼠标键盘操作

时间:2024-04-11 18:45:07浏览次数:14  
标签:鼠标 keys selenium driver send ele 键盘 Keys action

selenium之鼠标键盘操作

一、鼠标

1、导包:

from selenium.webdriver.common.action_chains import ActionChains

2、常规操作

2.1 左键单击

search_ele = WebDriverWait(driver, 15, 0.5).until(EC.visibility_of_element_located(("id", "search-input")))

search_ele.send_keys("手机")

# 查找搜索按钮
search_button = WebDriverWait(driver, 15, 0.5).until(EC.visibility_of_element_located(("id", "ai-topsearch")))

action = ActionChains(driver)
# 左键点击
action.click(search_button)
action.perform()

2.2 右键点击

login_ele = WebDriverWait(driver, 15, 0.5).until(EC.visibility_of_element_located(("link text", "登录")))

action = ActionChains(driver)
# 鼠标右键
action.context_click(login_ele) 
action.perform()

2.3 左键双击

welcome_text = WebDriverWait(driver, 15, 0.5).until(EC.presence_of_element_located(("xpath", "/html/body/div[6]/div/div[1]/div[1]/em/span/em[1]")))

action = ActionChains(driver)

# 鼠标左键双击
action.double_click(welcome_text)
action.perform()

2.4 鼠标左键单击,不松开;拖动到某个元素上后,松开

login_ele = WebDriverWait(driver, 15, 0.5).until(EC.visibility_of_element_located(("link text", "登录")))
search_ele = WebDriverWait(driver, 15, 0.5).until(EC.visibility_of_element_located(("id", "search-input")))
action = ActionChains(driver)
action.drag_and_drop(login_ele, search_ele)  # 有问题,系统鼠标干扰鼠标操作;在GUI操作系统上不能使用;
action.perform()
time.sleep(3)
print(search_ele.location) # 元素的位置信息的获取
print(search_ele.size) # 元素的尺寸的获取
action.drag_and_drop_by_offset(login_ele, search_ele.location["x"] + search_ele.size["width"]/2,search_ele.location["y"] + search_ele.size["height"]/2)  # 有问题,系统鼠标干扰鼠标操作;在GUI操作系统上不能使用;

2.5 鼠标悬停在某个元素上

goods_type_element = WebDriverWait(driver, 15, 0.5).until(EC.visibility_of_element_located(("css selector", ".bd-name")))
action = ActionChains(driver)
action.move_to_element(goods_type_element)
action.perform()

# 当某个元素无法点击时,可先进行鼠标悬停操作,后点击
goods_type_element.click()




二、键盘

1、导包

from selenium.webdriver.common.keys import Keys

2、代码

Keys()类提供了键盘上几乎所有的按键方法,send_keys()不见可以模拟键盘输入,还可以用来输入键盘上的按键,甚至是组合键,例子如下:

# 模拟键盘事件
from selenium import webdriver
# 引入keys模块
from selenium.webdriver.common.keys import Keys
driver = webdriver.Chrome()
driver.get("http://www.baidu.com")
# 输入框输入内容
driver.find_element_by_id("kw").send_keys("selenium")
# 输入“教程”
driver.find_element_by_id("kw").send_keys("教程")
# 删除“教程”
driver.find_element_by_id("kw").send_keys(Keys.BACK_SPACE)
...

3、常用操作

# 常用的键盘操作
send_keys(Keys.BACK_SPACE)
send_keys(Keys.SPACE)
send_keys(Keys.TAB)
send_keys(Keys.ESCAPE)
send_keys(Keys.ENTER)
send_keys(Keys.CONTROL,'a')
send_keys(Keys.CONTROL,'c')
send_keys(Keys.CONTROL,'v')
send_keys(Keys.CONTROL,'x')
send_keys(Keys.F1)
...
send_keys(Keys.F12) 

标签:鼠标,keys,selenium,driver,send,ele,键盘,Keys,action
From: https://www.cnblogs.com/PengHwei/p/18129854

相关文章

  • echarts折线图 x 轴 y 轴不展示 背景图为网格 鼠标划上样式修改等
    :header-cell-style="{backgroundColor:'#F6F8F9',color:'#333',textAlign:'center'}" 要求1、折线为渐变色2、折线区域渐变色3、x轴y轴不展示 4、折线图背景为网格   5、鼠标划上样式修改 constoption={title:{......
  • Selenium 笔记
    相关资料Selenium官网Selenium文档SeleniumPython接口文档如果要查看其他语言的Selenium接口文档,见下载SeleniumW3CWebDriver规范Web驱动器可以访问Selenium官方Web驱动器生态查看各主流浏览器的Web驱动器下载Chrome也包含了ChromeDriver文档115以后版本115以......
  • 如何巧妙应对iOS键盘难题?
    前言写过移动端的同学或多或少都遇到过软键盘带来的各种各样的问题,最典型的就是输入框被软键盘遮挡、fixed元素失效等问题,并且这些问题在iOS上的表现让人难以接受。webview的差异在移动端上,我们的H5页面一般是运行在宿主APP提供的webview中,简单点理解,你其实可以把它当作浏览器,......
  • 使用docker部署基于selenium和chrome-headless的爬虫
    使用docker部署基于selenium和chrome-headless的爬虫无论是测试还是爬虫的一些工作,有时候都会用到selenium去对chrome执行自动化操作,这里介绍一下如何使用docker快捷方便的部署相关应用。1.selenium+chrome镜像通过dockersearchselenium我们发现,有一个docker镜像叫做sele......
  • selenium-浏览器复用-Invalid Status code=403 text=Forbidden
    问题:selenium-java版本为4.1.4、4.8.2+Java8运行时报InvalidStatuscode=403text=Forbidden 运行代码:publicclassRemoteTest{publicChromeOptionsoptions;publicWebDriverdriver;@TestpublicvoidremoteTest(){options=newC......
  • 使用Python+selenium+pytest+allure 编写ui自动化
    一、1.1背景:每次新发布功能后都需要手动跑冒烟用例,重复点击太多,消耗人力资源1.2测试项目:飞书第三方isv应用1.3技术栈:Python+Selenium+Pytest+Allure1.4框架设计:使用PageObject设计模式,将页面的元素和元素之间的操作方法进行分离。它有三层架构,分别为:基础封装层BasePage,PO页面......
  • 想请教一下,selenium可以做到点击这个继续嘛?
    大家好,我是Python进阶者。一、前言前几天在Python钻石交流群【盼头】问了一selenium的问题,问题如下:想请教一下,selenium可以做到点击这个继续嘛?二、实现过程这里【此类生物】给了一个解答:可以,switchtoalert。顺利地解决了粉丝的问题。如果你也有类似这种Python相关的小问......
  • 项目三简易计算器 任务3-1矩阵键盘测试
    任务描述:单片机连接8位共阳极数码管和4*4矩阵键盘,编写键盘测试程序,按下任意按键,显示8个相同数字。线与线之间是立体的,交叉但不相连,没有结点,相当于立交桥。每一个按键相当于上桥下桥口,连接两条路。起到短路开关作用,按下将对应的行列连在一起。 悬空为1,1与0,相连时,1会变0,即......
  • SeleniumBase 录制模式-使用笔记(二)
    自动化福音(爬虫、办公、测试等)SeleniumBase使用笔记(二)SeleniumBase录制模式SeleniumBase提供录制模式,可以直接录制操作,并生成脚本。目录启用录制录制功能操作结束录制启用录制直接命令启用#new_recording.py=输出文件名#URL:路径sbasemkrecnew_recordi......
  • 2-48. 实现鼠标选中物品后的场景点击事件流程
    修改CursorManager修改EventHandler修改Player修改GridMapManager继续修改CursorManager继续修改EventHandler我们希望人物扔出东西的时候,不是直接在地面上生成一个物品,而是有一个扔的效果修改ItemManager修改InventoryManager继续修改GridMapMa......