【pytest框架之web自动化测试】---【ActionChains】selenium中鼠标的常见操作
selenium中提供的webdriver包含了鼠标操作的类,常用的是:ActionsChains和TouchActions
前者用于pc端,后者用于pc和h5。


**
实例:鼠标单击双击、右击
**
# -*- coding:utf-8 -*-
# author:xjw
# date=2021/2/25
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
class Testactionchains:
def setup(self):
self.driver= webdriver.Chrome()
self.driver.get('http://sahitest.com/demo/clicks.htm') #测试鼠标单击双击等操作的网址
self.driver.implicitly_wait(5) #隐式等待
def teardown(self):
self.driver.quit()
def test_case_actionchains(self):
#element_click=self.driver.find_element(By.XPATH,'/html/body/form/input[3]')
element_click=self.driver.find_element(By.CSS_SELECTOR, '[value="click me"]')
element_dbclick = self.driver.find_element(By.CSS_SELECTOR, '[value="dbl click me"]')
element_rightclick =self.driver.find_element(By.CSS_SELECTOR, '[value="right click me"]')
action=ActionChains(self.driver)
action.click(element_click)
action.double_click(element_dbclick)
action.context_click(element_rightclick)
action.perform()
time.sleep(3)
实例:鼠标的移动
移动到博客园发现菜单栏
# -*- coding:utf-8 -*-
# author:xjw
# date=2021/2/25
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
class Testmove:
def setup(self):
self.driver= webdriver.Chrome()
self.driver.get('https://www.cnblogs.com/') #测试鼠标单击双击等操作的网址
self.driver.maximize_window()
self.driver.implicitly_wait(5) #隐式等待
def teardown(self):
self.driver.quit()
def test_case_moveclick(self):
element_move=self.driver.find_element(By.XPATH,'//*[@id="nav_left"]/li[9]/div[1]/a')#定位到博客园发现栏
action=ActionChains(self.driver)
action.move_to_element(element_move)
action.perform()
time.sleep(3)
***
鼠标的拖拽和释放
***
单价某个元素拖拽到指定位置然后释放
import time
from selenium import webdriver
from selenium.webdriver import ActionChains
from selenium.webdriver.common.by import By
class Testmove:
def setup(self):
self.driver= webdriver.Chrome()
self.driver.get('http://sahitest.com/demo/dragDropMooTools.htm') #鼠标移动
self.driver.maximize_window()
self.driver.implicitly_wait(5) #隐式等待
def teardown(self):
self.driver.quit()
def test_case_draganddrop(self):
action=ActionChains(self.driver)
source_element=self.driver.find_element(By.XPATH,'//*[@id="dragger"]') #定位需要拖拽的元素
target_element=self.driver.find_element(By.XPATH,'/html/body/div[2]') #定位需要放置的位置
action.drag_and_drop(source_element,target_element)
action.perform()
time.sleep(3)
参考说明文档:
https://selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.action_chains
浙公网安备 33010602011771号