【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

posted @ 2020-10-10 22:13  第五个季节xjw  阅读(171)  评论(0)    收藏  举报