鼠标点击在测试中式必不可少的,自动化测试鼠标点击需要先导入:from selenium.webdriver import ActionChains
鼠标点击的方式有:
鼠标点击 :click()
鼠标右击: context_click(elem).perform()
双击:double_click(elem).perform()
长按右键:click_and_hold(elem).perform()
移动鼠标从一个元素到另一个元素:drag_and_drop(elem_a, elem_b).perform()
拖拽元素到指定位置:drag_and_drop_by_offset(elem, x ,y)
鼠标移动到指定元素:move_to_element(elem).perform()
鼠标移动到距离指定元素多少的位置:move_to_element_with_offeset(elem, x, y).perform()
在指定元素位置松开鼠标:click_and_hold(elem).release(elem).perform()
#conding=utf-8
from selenium import webdriver
import time
from selenium.webdriver import ActionChains # 鼠标操作
from selenium.webdriver.common.by import By
driver = webdriver.Chrome()
driver.get('https://www.baidu.com')
# 实例化鼠标
acti = ActionChains(driver)
# 鼠标点击
driver.find_element(By.ID,'kw').click()
# 长按鼠标左键
elem = driver.find_element(By.LINK_TEXT,'hao123')
acti.click_and_hold(elem).perform()
time.sleep(3)
# 鼠标右击
acti.context_click(elem).perform()
time.sleep(3)
# 双击
elem_a = driver.find_element(By.XPATH,'//*[@id="kw"]')
acti.double_click(elem_a).perform()
time.sleep(3)
# 拖动元素到另一个元素处elem->elem_a
acti.drag_and_drop(elem, elem_a).perform()
time.sleep(3)
#拖拽元素到指定位置
acti.drag_and_drop_by_offset(elem_a, 100, 100).perform()
time.sleep(3)
# 鼠标移动到指定元素
elem_b = driver.find_element(By.LINK_TEXT,'更多')
acti.move_to_element(elem_b).perform()
time.sleep(3)
# 鼠标移动到指定坐标位置
acti.move_by_offset(200, 200).perform()
time.sleep(3)
#鼠标移动到距离元素多少的位置
acti.move_to_element_with_offset(elem, 300, 300).perform()
time.sleep(3)
# 在指定元素位置松开鼠标
elem_c = driver.find_element(By.CSS_SELECTOR,'#s-top-left > a:nth-child(1)')
acti.click_and_hold(elem_c).perform()
acti.click_and_hold(elem_a).release(elem_a).perform()
time.sleep(3)
driver.quit()