web自动化3-常用鼠标+键盘事件

# 鼠标右键
from selenium.webdriver import ActionChains  # 鼠标右键操作模拟

chehui = driver.find_element(By.XPATH, '//*[text()="我是小海呀2"]')
rightClick = ActionChains(driver)  # 实例化ActionChains类
time.sleep(2)
rightClick.context_click(chehui).perform()  # context_click()执行右键操作,perform()是一个执行动作
time.sleep(2)
driver.find_element(By.XPATH, '//div[not(contains(@style,"display"))]/ul/li[text()="撤回"]').click()
driver.find_element(By.XPATH, '//span[text()="评"]/parent::button/preceding-sibling::div/div/button/span/i[contains(@class,"image")]').click()
#鼠标事件 
 链式调用
 1)找到元素对象
 2)调用鼠标方法,将元素对象作为参数传递
 3)调用perform()
    
# 鼠标悬停在定位元素中心
hover_elem = driver.find_element(By.ID, "hover")
ActionChains(driver) .move_to_element(hover_elem) .perform()
    
# 鼠标点击元素并按钮不放
clickable_elem = driver.find_element(By.ID, "clickable")
ActionChains(driver) .click_and_hold(clickable_elem) .perform()
    
# 鼠标点击元素并松开
clickable_elem = driver.find_element(By.ID, "click")
ActionChains(driver) .click(clickable_elem) .perform()
# 鼠标右键元素
clickable_elem = driver.find_element(By.ID, "clickable")
ActionChains(driver) .context_click(clickable_elem).perform()
    
# 鼠标双击元素
clickable_elem = driver.find_element(By.ID, "clickable")
ActionChains(driver) .double_click(clickable_elem).perform()

# 鼠标拖动元素
# 源元素
draggable_elem = driver.find_element(By.ID, "draggable")
# 目标元素
droppable_elem = driver.find_element(By.ID, "droppable")
ActionChains(driver) .drag_and_drop(draggable_elem, droppable_elem).perform()
    
# 滚轮滚动到元素位置
iframe_elem = driver.find_element(By.TAG_NAME, "iframe")
ActionChains(driver).scroll_to_element(iframe_elem).perform()
    
# 先找到分级管理
分级管理 = self.driver.find_element(By.XPATH, '//ul/li[text()="分机管理"]')
ActionChains(self.driver).move_to_element(分级管理).perform()
time.sleep(1)
短信发送记录查询 = self.driver.find_element(By.XPATH, '//ul/li[text()="短信发送记录查询"]')
# 滚动到元素使其可见
self.driver.execute_script("arguments[0].scrollIntoView(true);", 短信发送记录查询)
    
# 滚动到元素使其可见
driver.execute_script("arguments[0].scrollIntoView(true);", element)
import win32con
import win32clipboard as wincld
# 给鼠标右键复制使用
def ctrl_c(info):
 wincld.OpenClipboard()
 wincld.EmptyClipboard()
 wincld.SetClipboardData(win32con.CF_UNICODETEXT, info)
 wincld.CloseClipboard()

# 给粘贴板写入: 早有蜻蜓立上头!
common.ctrl_c(" ~ 早有蜻蜓立上头!")
# 输入文本
driver.find_element(By.XPATH, '//div[@class="chatRoom" and @style!="display: none;"]/div[2]/div[3]/textarea').send_keys("你好啊!")
# crtl+V,追加内容
driver.find_element(By.XPATH, '//div[@class="chatRoom" and @style!="display: none;"]/div[2]/div[3]/textarea').send_keys(Keys.CONTROL, "V");
time.sleep(1)
driver.find_element(By.XPATH, '//div[@class="chatRoom" and @style!="display: none;"]/div[2]/div[3]/button[2]').click()
# 键盘事件 
 from selenium.webdriver import Keys
# 空格键:space
element.send_keys(Keys.SPACE)
# 制表符:tab
element.send_keys(Keys.TAB)
# 回车键:enter
element.send_keys(Keys.ENTER)
# 删除最后一个字符串
element.send_keys(Keys.BACK_SPACE)
# 全选:ctrl + A
element.send_keys(Keys.CONTROL, 'a')
# 复制:ctrl + C
element.send_keys(Keys.CONTROL, 'c')
# 将内容粘贴至元素内容框中,粘贴:ctrl + V
driver.find_element(By.ID, 'passwordA').send_keys(Keys.CONTROL, 'V')
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值