python自动化6 鼠标事件

该文章介绍了如何使用Selenium的ActionChains类进行Web产品的自动化测试,包括鼠标的各种操作,如右击、双击、拖放等,并展示了具体的Python代码示例,如find_element_by_xpath、click、submit等方法的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在实际的web产品测试中,对于鼠标的操作,不单单只有click0,有时候还要用到右击、双击、拖动等操作,这些操作包含在ActionChains类中。
ActionChains类中鼠标操作常用方法:
context click() 右击
double click() 双击
drag_and_drop() 拖动
move_to_element() 鼠标移动到一个元素上
click and hold() 按下鼠标左键在一个元素上

from selenium import webdriver
from config_utils import config_u
from log_utils import LogUtils
from selenium.webdriver.firefox.service import Service
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains

log_path = config_u.get_log_path
log_utils = LogUtils(log_path)

class WebDriver:
    def __init__(self,driver_path=config_u.get_driver_path):
        path = Service(driver_path)
        self.driver = webdriver.Firefox(service=path)
        self.mouse = ActionChains(self.driver)

    def get_urls(self,urls):
        try:
            self.driver.get(urls)
            log_utils.print_file_log('info', '窗口打开成功')
        except Exception as e:
            log_utils.print_file_log('error','url错误:'+str(e))

    def quit_browser(self):
        self.driver.quit()

    def browser_back(self):
        self.browser_back()

    def find_element_xpath(self,xpath_path,key_word):
        self.driver.find_element(By.XPATH,xpath_path).send_keys(key_word)

    def find_element_css(self,css_path,key_word):
        self.driver.find_element(By.CSS_SELECTOR,css_path).send_keys(key_word)

    def element_xpath_click(self,xpath_path):
        #按键点击
        self.driver.find_element(By.XPATH,xpath_path).click()

    def element_xpath_submit(self,xpath_path):
        #表单提交
        self.driver.find_element(By.XPATH, xpath_path).submit()

    def element_xpath_get_text(self,xpath_path):
        #获取标签文本
        return self.driver.find_element(By.XPATH,xpath_path).text

    def element_xpath_get_attribute(self,xpath_path,class_value):
        # 获取标签属性值
        return self.driver.find_element(By.XPATH, xpath_path).get_attribute(class_value)

    def element_xpath_is_display(self,xpath_path):
        #组件对象是否可见
        return self.driver.find_element(By.XPATH, xpath_path).is_displayed()

    def element_xpath_is_enable(self,xpath_path):
        #组件对象是否禁用
        return self.driver.find_element(By.XPATH, xpath_path).is_enabled()

    def element_xpath_is_select(self,xpath_path):
        #组件对象是否禁用
        return self.driver.find_element(By.XPATH, xpath_path).is_selected()

    def element_xpath_tag_name(self,xpath_path):
        #获取对象标签名
        return self.driver.find_element(By.XPATH, xpath_path).tag_name

    def element_xpath_location(self,xpath_path):
        #获取元素坐标
        return self.driver.find_element(By.XPATH, xpath_path).location

    def element_xpath_screenshot(self,xpath_path):
        #元素截图
        self.driver.find_element(By.XPATH, xpath_path).screenshot()

    #鼠标相关操作
    def element_xpath_right_click(self,xpath_path):
        #鼠标右击
        element=self.driver.find_element(By.XPATH,xpath_path)
        self.mouse.context_click(element).perform()

    def element_xpath_move_element(self,xpath_path):
        #鼠标浮在元素上
        element=self.driver.find_element(By.XPATH,xpath_path)
        self.mouse.move_to_element(element).perform()

    def element_xpath_double_click(self,xpath_path):
        #双击
        element=self.driver.find_element(By.XPATH,xpath_path)
        self.mouse.double_click(element).perform()

    def element_xpath_drag_drop(self,xpath_path):
        #拖动
        element=self.driver.find_element(By.XPATH,xpath_path)
        self.mouse.drag_and_drop(element).perform()

    def element_xpath_click_hold(self,xpath_path,sec):
        #按下鼠标左键在一个元素上 sec 长按时间
        element=self.driver.find_element(By.XPATH,xpath_path)
        self.mouse.click_and_hold(element).pause(sec).release().perform()

if __name__ == '__main__':
    urls = 'http://127.0.0.1/zentao/user-login.html'
    driver = WebDriver()
    driver.get_urls(urls)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值