Selenium基础之鼠标键盘操作

您所在的位置:网站首页 鼠标操作视频教程 Selenium基础之鼠标键盘操作

Selenium基础之鼠标键盘操作

2024-03-21 12:55| 来源: 网络整理| 查看: 265

一、鼠标操作

鼠标的操作都包含在 ActionChains 类中,所以要模拟鼠标操作是首先要导入该包:

from selenium.webdriver.common.action_chains import ActionChains

ActionChain中常用的鼠标操作:

# 单击鼠标左键 click(ele) # 单击鼠标右键 context_click(ele) # 双击鼠标左键 double_click(ele) # 拖动某个元素后松开 drag_and_drop(source, target) # 鼠标悬停在一个元素上 move_to_element(ele) # 在某个元素上单击鼠标左键,不松开 click_and_hold(ele) # 在某个元素上松开鼠标左键 release() # 执行上速鼠标操作 perform()

对 ActionChains 类进行实例化对象操作,调用操作(元素)方法,再执行 perform() 方法。

【用法小示例】

导入需要的包

from selenium.webdriver.common.action_chains import ActionChains from selenium import webdriver

再初始化一些实例对象

# 创建浏览器实例对象 driver = webdriver.Chrome() # 创建鼠标实例化对象 chains = ActionChains(driver) # 访问商城网站 driver.get("http://39.98.138.157/shopxo/index.php") # 最大化浏览器窗口 driver.maximize_window() click() :鼠标左键 点击 操作

两种用法,第一种,带参数 click(ele):

# 先通过 xpath 定位登录按钮 login = driver.find_element_by_xpath("//button[text()='登录']") # 鼠标左键单击登录按钮 chains.click(login).perform()

第二种,不带参数 click():

driver.find_element_by_xpath("//button[text()='登录']").click() context_click(ele):鼠标右键 单击 操作 # 通过 xpath 定位用户名 username = driver.find_element_by_xpath("//input[@name='accounts']") # 再鼠标右键单击输入框 chains.context_click(username).perform() double_click(ele):鼠标左键 双击 操作 # 通过 xpath 定位用户名 username = driver.find_element_by_xpath("//input[@name='accounts']") # 再鼠标双击全选输入框内容 chains.double_click(username).perform() move_to_element(ele):鼠标 悬停 # 通过 xpath 定位登录文本 login = driver.find_element_by_xpath("//div[@class='member-login']/a[text()='登录']") # 再让鼠标悬停到该元素上 chains.move_to_element(login).perform() drag_and_drop(source, target):拖动某个元素后松开 # 先定位被拖拽的元素 source = driver.find_element_by_xpath('//*[@id="doc-topbar-collapse"]/ul/li[1]/a') # 再定位目标元素 target = driver.find_element_by_xpath("//input[@name='accounts']") # 最后调用 drag_and_drop 方法将定位到的source元素拖拽到目标元素target chains.drag_and_drop(source, target) 二、键盘操作 1、sent_keys(str):传入文本

sent_keys() 传入的参数为 String 类型的文本时,主要是在在输入框中输入文本内容时使用。

# 创建浏览器实例对象 driver = webdriver.Chrome() # 使用id定位搜索框 input = driver.find_element_by_id("search") # 搜索框中输入“Python” input.send_keys("Python") # 也可以使用一行代码 # driver.find_element_by_id("search").send_keys("Python") 2、sent_keys(Keys):键盘操作

所有的键盘操作都是通过 sent_key() 里面改变参数实现的。在使用键盘按键方法前需要先导入 Keys 包:

from selenium.webdriver.common.keys import Keys

我们来看下 Keys 类中有哪些键盘按钮。

class Keys(object): """ Set of special keys codes. """ NULL = '\ue000' CANCEL = '\ue001' # ^break HELP = '\ue002' BACKSPACE = '\ue003' BACK_SPACE = BACKSPACE TAB = '\ue004' CLEAR = '\ue005' RETURN = '\ue006' ENTER = '\ue007' SHIFT = '\ue008' LEFT_SHIFT = SHIFT CONTROL = '\ue009' LEFT_CONTROL = CONTROL ALT = '\ue00a' LEFT_ALT = ALT PAUSE = '\ue00b' ESCAPE = '\ue00c' SPACE = '\ue00d' PAGE_UP = '\ue00e' PAGE_DOWN = '\ue00f' END = '\ue010' HOME = '\ue011' LEFT = '\ue012' ARROW_LEFT = LEFT UP = '\ue013' ARROW_UP = UP RIGHT = '\ue014' ARROW_RIGHT = RIGHT DOWN = '\ue015' ARROW_DOWN = DOWN INSERT = '\ue016' DELETE = '\ue017' SEMICOLON = '\ue018' EQUALS = '\ue019' NUMPAD0 = '\ue01a' # number pad keys NUMPAD1 = '\ue01b' NUMPAD2 = '\ue01c' NUMPAD3 = '\ue01d' NUMPAD4 = '\ue01e' NUMPAD5 = '\ue01f' NUMPAD6 = '\ue020' NUMPAD7 = '\ue021' NUMPAD8 = '\ue022' NUMPAD9 = '\ue023' MULTIPLY = '\ue024' ADD = '\ue025' SEPARATOR = '\ue026' SUBTRACT = '\ue027' DECIMAL = '\ue028' DIVIDE = '\ue029' F1 = '\ue031' # function keys F2 = '\ue032' F3 = '\ue033' F4 = '\ue034' F5 = '\ue035' F6 = '\ue036' F7 = '\ue037' F8 = '\ue038' F9 = '\ue039' F10 = '\ue03a' F11 = '\ue03b' F12 = '\ue03c' META = '\ue03d' COMMAND = '\ue03d'

Keys 作为类名,类属性名使用大写字母,这些属性被赋予的值为对应的键盘的ue编码。当需要调用键盘操作时,直接使用 类名.属性名,例举几个常用的键盘操作,例如:

# 删除键 sent_keys(Keys.BACK_SPACE) # 空格键 sent_keys(Keys.SPACE) # tab 键 sent_keys(Keys.TAB) # delete 键 sent_keys(Keys.DELETE) # + 键 sent_keys(Keys.ADD) # enter 键 sent_keys(Keys.ENTER) # shift 键 sent_keys(Keys.SHIFT) # ctrl+A:全选 sent_keys(Keys.CONTROL, 'a') # ctrl+C:复制 sent_keys(Keys.CONTROL, 'c') # ctrl+V:粘贴 sent_keys(Keys.CONTROL, 'v') # ctrl+X:剪切 sent_keys(Keys.CONTROL, 'x') # F1 键 sent_keys(Keys.F1) # 数字9 键 sent_keys(Keys.NUMPAD9)

【小练习】

在输入框中输入文本 我要学 Selenium 自动化测试 ,然后全部选中该文本,再删除。

# -*- coding: utf-8 -*- from time import sleep from selenium import webdriver from selenium.webdriver.common.keys import Keys # 创建 Chrome 浏览器实例对象 driver = webdriver.Chrome() # 访问百度首页地址 driver.get('https://www.baidu.com/') # 使用 name 定位搜索框 search = driver.find_element_by_name('wd') # 搜索框中输入 “我要学 Selenium 自动化测试” search.send_keys('我要学 Selenium 自动化测试') # 全选搜索框中的文本内容 search.send_keys(Keys.CONTROL, 'a') # 为了看清楚全选中文本强制等待 3 秒 sleep(3) # 将搜索框中的内容剪切删除 search.send_keys(Keys.CONTROL, 'x') # 为了看清楚删除文本内容强制等待 3 秒 sleep(3) # 退出关闭浏览器 driver.quit()


【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3