鼠标事件

Selenium 中的鼠标事件被封装在 ActionChains 类中,导入形式:

from selenium.webdriver.common.action_chains import ActionChains

官网文档:selenium.webdriver.common.action_chains

ActionChains 罕用的办法:

序号办法/属性形容
1click(self, on_element=None)单击鼠标左键
2click_and_hold(self, on_element=None)点击鼠标左键,不松开
3context_click(self, on_element=None)点击鼠标右键
4double_click(self, on_element=None)双击鼠标右键
5drag_and_drop(self, source, target)拖拽到某个元素而后松开
6drag_and_drop_by_offset(self, source, xoffset, yoffset)拖拽到某个坐标而后松开
7key_down(self, value, element=None)按下键盘上的某个按键
8key_up(self, value, element=None)松开键盘上的某个按键
9move_by_offset(self, xoffset, yoffset)鼠标从以后地位挪动到某个坐标
10move_to_element(self, to_element)鼠标挪动到某个元素
11move_to_element_with_offset(self, to_element, xoffset, yoffset)挪动到间隔某个元素(左上角坐标)多少间隔的地位
12perform(self)执行动作链中的所有动作
13def release(self, on_element=None)在某个元素地位松开鼠标左键
14send_keys(self, *keys_to_send)发送某个键到以后焦点的元素
15send_keys_to_element(self, element, *keys_to_send)发送某个键到指定元素
留神:当整个动作链编写实现之后,必须调用 perform() 办法来执行所有动作,否则动作不失效

实例操作

# 模仿事件:鼠标挪动到商品分类列表--食物,在二级分类列表中点击“小龙虾”from selenium.webdriver.common.action_chains import ActionChainsfrom selenium import webdriverfrom time import sleepdriver = webdriver.Chrome()  # 关上浏览器driver.maximize_window()  # 浏览器最大化driver.get("https://www.jd.com")  # 跳转至京东首页sleep(2)element = driver.find_element_by_xpath("//li[@data-index='11']")  # 挪动到的元素action = ActionChains(driver).move_to_element(element)  # 动作:挪动鼠标到指定元素action.perform()  # 执行所有动作sleep(2)target_element = driver.find_element_by_link_text("小龙虾")  # 指标元素target_element.click()  # 点击sleep(2)driver.quit()

键盘事件

Selenium 中的键盘事件被封装在 Keys 类中,导入形式:

from selenium.webdriver.common.keys import Keys

官网文档:selenium.webdriver.common.keys

实例操作

# 模仿事件:在百度输入框中输出:selenium 自动化测试,按2次删除键,全选,剪切,复制from selenium.webdriver.common.keys import Keysfrom selenium import webdriverfrom time import sleepdriver = webdriver.Chrome()  # 关上浏览器driver.maximize_window()  # 浏览器最大化driver.get("https://www.baidu.com/")  # 跳转至百度首页sleep(1)element = driver.find_element_by_id("kw")element.send_keys("selenium 自动化测试")sleep(1)element.send_keys(Keys.BACKSPACE)  # 按删除键sleep(1)element.send_keys(Keys.BACKSPACE)  # 按删除键sleep(1)element.send_keys(Keys.CONTROL, "a")  # 按Ctrl + asleep(1)element.send_keys(Keys.CONTROL, "x")  # 按Ctrl + xsleep(1)element.send_keys(Keys.CONTROL, "v")  # 按Ctrl + vsleep(3)driver.quit()  # 敞开浏览器