精华内容
下载资源
问答
  • selenium + python 鼠标点击事件

    万次阅读 2017-08-27 21:41:40
    鼠标点击事件做了一些了解,从百度发现有很多相关内容 参考文章https://www.ibm.com/developerworks/cn/java/j-lo-keyboard/ 和 http://blog.csdn.net/liujingqiu/article/details/50475833 首先引入模块 from ...

    对鼠标的点击事件做了一些了解,从百度发现有很多相关内容

    参考文章https://www.ibm.com/developerworks/cn/java/j-lo-keyboard/ 和 http://blog.csdn.net/liujingqiu/article/details/50475833

    首先引入模块 from selenium.webdriver.common.action_chains import ActionChains

    #鼠标双击事件
    double = driverChrome.find_element_by_xpath('//*[@id="dynamicLayout_0"]/div/div/dl/dt/a')
    ActionChains(driverChrome).double_click(double).perform()
    # 拖动
    source = driverChrome.find_element_by_xpath('path1')
    target = driverChrome.find_element_by_xpath('path2')
    ActionChains(driverChrome).drag_and_drop(source, target).perform()
    
    #鼠标移到元素上
    above = driverChrome.find_element_by_xpath('//*[@id="dynamicLayout_0"]/div/div/dl/dd[2]/span/i')
    ActionChains(driverChrome).move_to_element(above).perform()
    
    #鼠标移右击事件
    right = driverChrome.find_element_by_xpath('//*[@id="layoutMain"]/div/div[2]/div/div/div[4]/div/div/dd/div[2]')
    ActionChains(driverChrome).context_click(right).perform()
    #单击hold住
    left_hold = driverChrome.find_element_by_xpath('path')
    ActionChains(driverChrome).click_and_hold(left_hold).perform()
    
    在百度云盘的情景下,用了双击事件,鼠标移到元素上,以及鼠标右键的操作,拖动以及鼠标左键hold还没尝试
    在场景应用中又遇到一些问题进行了扩展,下面代码是基于上一次代码接着的:
    
    #鼠标双击
    double = driverChrome.find_element_by_xpath('//*[@id="dynamicLayout_0"]/div/div/dl/dt/a')
    ActionChains(driverChrome).double_click(double).perform()
    print("双击成功")
    sleep(5)
    
    #鼠标移动
    above = driverChrome.find_element_by_xpath('//*[@id="dynamicLayout_0"]/div/div/dl/dd[2]/span/i')
    ActionChains(driverChrome).move_to_element(above).perform()
    print("移动成功")
    sleep(5)
    
    
    #尝试层级定位,定位左侧音乐文字链接
    uClass = driverChrome.find_element_by_class_name('fOHAbxb')
    liList = uClass.find_elements_by_tag_name('li') #定位一组li
    for li in liList:
        if li.get_attribute('data-key') =='music':  #音乐选项
            li.click()
    
    #定位右侧第一条音乐信息
    musicL = driverChrome.find_element_by_class_name("NHcGw")
    musicList = musicL.find_elements_by_tag_name("dd")
    for d in musicList:
        if d.get_attribute('_position')=='0':
            print("获得第一首歌")
            #d.click()
            ActionChains(driverChrome).move_to_element(d).perform()
            ActionChains(driverChrome).context_click(d).perform()  # 点击右键
    
    sleep(3)
    #弹出框定位
    element1 =  driverChrome.find_element_by_class_name("list")
    #定位
    sleep(5)
    liEliment = element1.find_elements_by_tag_name('li')
    for li in liEliment:
        if li.text =='下载':
            li.click()
    print("右击成功")

    在这次代码中,本来都是采用的xpath定位,但是在运行脚本过程中xpath定位总是有时成功,有时候会提示找不到该元素,本来以为都是由于页面加载或者等待时间不够长
    造成,但是通过询问得出还有可能是动态元素,xpath的值会改变,经过百度,暂且使用了一种方法:层级定位。
    但是第二天在公司电脑上使用的时候又出现不能定位的情况,得到一些建议采用手写的xpath和cssSelector 来定位,接下来好好学习下xpath 吧
    对自己来说其中使用elements是学到的一个知识点,得到一个
    WebElements对象,可进行循环获取,其中WebElement对象可用的方法参考:
    http://www.cnblogs.com/hanxiaobei/p/6108677.html

    参考网址:http://blog.csdn.net/huilan_same/article/details/52594354(动态id,class定位)
    http://blog.csdn.net/huilan_same/article/details/52541680 父子、兄弟、相邻节点定位
    http://blog.csdn.net/u013840366/article/details/50188969 xpath的书写

    不会的还有好多,接着总结学习吧






    展开全文
  • python模拟鼠标点击事件

    千次阅读 2019-12-10 16:53:11
    python模拟鼠标点击事件运行前提配置获取鼠标坐标值代码模拟点击代码 运行前提配置 1.安装python3 可以搜索安装python3的教程,有很多这种教程 2.安装相对应版本的pyhook pyhook下载网站链接: ...

    前提配置

    1.安装python3
    可以搜索安装python3的教程,有很多这种教程
    2.安装相对应版本的pyhook
    pyhook下载网站链接: http://www.lfd.uci.edu/~gohlke/pythonlibs/.
    点进去看到一大堆,不要慌,Ctrl+F寻找pyhook
    点击对应版本下载
    下载相应的pyhook后,打开cmd窗口,pip install 对应的pyhook名字,安装即可
    在这里插入图片描述
    (如果不能运行,则这里安装在与_setup.py文件相同的位置下。
    _setup.py的位置可以用everything搜索出来)

    获取鼠标坐标值代码

    安装pyautogui
    (1)可以在cmd下安装,使用pip安装命令
    (2)也可以在pycharm的设置中安装:
    在这里插入图片描述
    在这里插入图片描述

    在这里插入图片描述

    import  os
    import  time
    import  pyautogui as pg
    try:
        while True:
            sW, sH = pg.size()  #获取屏幕的尺寸(像素)screenWidth,screenHeight
            print("屏幕分辨率:\n"+str(sW)+','+str(sH)+'\n')  #打印屏幕分辨率
            x,y = pg.position()   #获取当前鼠标的坐标(像素)
            print("鼠标坐标:\n" + str(x).rjust(4)+','+str(y).rjust(4)) #打印鼠标坐标值
            time.sleep(2) #等待1秒
            os.system('cls')   #清屏
    except KeyboardInterrupt:
        print('\n结束') 
    

    模拟点击代码

    安装pymouse
    (1)可以在cmd下安装,使用pip安装命令
    (2)也可以在pycharm的设置中安装

    from pymouse import PyMouse
    from time import sleep
    for i in range(0,1000):    #循环点击
        m = PyMouse()
        m.click(627, 470)
        sleep(10)               #每十秒点击一次
    
    展开全文
  • Python鼠标连续点击事件

    千次阅读 2019-05-05 20:52:28
    需要先安装pyautogui 在cmd命令中输入 pip install pyautogui ...Command “python setup.py egg_info” failed with error code 1 in C:\Users\80237102\AppData\Local\Temp\pip-install-m1k3v484\pygetwi...

    需要先安装pyautogui
    在cmd命令中输入 pip install pyautogui
    在pyautogui的安装时容易报错:
    Command “python setup.py egg_info” failed with error code 1 in C:\Users\80237102\AppData\Local\Temp\pip-install-m1k3v484\pygetwindow
    解决方案:降低PyGetWindow版本,运行pip install PyGetWindow==0.0.1后安装PyGetWindow成功,然后再运行pip install pyautogui即可
    报错的原因:安装PyGetWindow过程中默认安装的PyAutoGUI-0.9.41,但依赖的是PyGetWindow-0.0.4,导致PyGetWindow-0.0.4出现上述问题。

    安装完pyautogui库后直接调用该模块:
    import

    展开全文
  • Python 鼠标单击小程序

    2020-05-04 10:29:30
    Python鼠标单击小程序前言设计思路窗口界面参数获取浏览器窗口查找和定位鼠标模拟窗口界面关闭结果 前言 果真,GF和deadline真是生产力。需求呢,公司内部网页学习平台,视频播放没10分钟需要鼠标点击一次,影响学习...

    前言

    果真,GF和deadline真是生产力。需求呢,公司内部网页学习平台,视频播放每10分钟需要鼠标点击一次,影响学习体验(或者说影响挂机刷分)。于是,就用python边学边写了个鼠标定时点击小程序,基本实现所有功能,算是交差,窗口如下。
    在这里插入图片描述

    设计思路

    主要涉及到python的win32操作,图形界面开发。主逻辑:(1)显示窗口界面,获取用户输入参数,设置成功(2)点击主程序,找到浏览器目标窗口,最大化,点击目标位置,最小化,(3)关闭窗口,信息提示,关闭窗口和点击主程序。

    窗口界面参数获取

    python窗口界面开发方面,查找资料,主要关注wxPython和自带的tkinter。貌似在代码量方面,wxPython较tkinter更有优势[1],但是考虑到自身的学习成本,以及手头刚好有tkinter教程,就在此使用了tkinter做界面开发。

    界面方面:主要涉及tkinter的Radiobutton(单选)控件,Label(标签)控件,Entry(输入框)控件,Button(按钮)控件以及Text(文本)控件,界面布局使用grid布局。

    接收参数:主要从用户图形界面接收浏览器类型、需点击的浏览器页面标题、需点击位置的屏幕x和y轴像素点坐标、间隔点击时间,共5个参数。
    对于图形界面中参数的接收,需要为对应的控件绑定变量,通过变量的get()方法获得对应的输入值。

    浏览器窗口查找和定位

    在这里对浏览器窗口进行定位,最大化和最小化。注意在浏览器类型方面,需要根据浏览器进行判断,需要获得窗口类型和浏览器实际的标题名称。可以借助工具Window Spy(窗体侦探软件) 获取信息。

    import win32con
    import win32api
    import win32gui
    import time
    #窗体显示并最大化函数
    def controlWin(classType,winName):
        browser=win32gui.FindWindow(classType,winName)
        if win32gui.ShowWindow(browser,win32con.SW_HIDE): #如果隐藏
            win32gui.ShowWindow(browser, win32con.SW_SHOW)
        time.sleep(1)
        win32gui.ShowWindow(browser, win32con.SW_MAXIMIZE)
    
    #窗体最小化函数
    def minWin(classType,winName):
        browser=win32gui.FindWindow(classType,winName)
        time.sleep(1)
        win32gui.ShowWindow(browser, win32con.SW_MINIMIZE)
    
    #windowName 为"视频播放 - XX学堂"
    def getWindowname(browserType,windowName="视频播放 - XX学堂"):
        if browserType=="火狐浏览器":
            classType="MozillaWindowClass"
            windowName=windowName+" - Mozilla Firefox"
        elif browserType=="谷歌浏览器":
            classType="Chrome_WidgetWin_1"
            windowName=windowName+" - Google Chrome"
        else:
            browserType=="QQ浏览器"
            classType="QQBrowser_WidgetWin_1"
            windowName=windowName
        return (classType,windowName)
    

    鼠标模拟

    鼠标点击操作,如果用户不设置在此使用屏幕分辨率宽和高的一半作为x和y的默认值。间隔时间设置为分钟。

    # 间隔单击鼠标 主控制函数
    def oneClick(x,y,t,classType,winName):
        t=t*60
        while True:
            #找到窗口最大化
            controlWin(classType,winName)
            # 设置鼠标的位置
            win32api.SetCursorPos([x, y])  # x,y轴坐标
            # 控制鼠标左键
            # 左键单击
            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0)  # 按下
            time.sleep(0.1)
            win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP, 0, 0, 0)  # 抬起
            #最小化窗体
            minWin(classType, winName)
            time.sleep(t)
    
    

    对于屏幕分辨率的获取,可以使用win32api中的GetSystemMetrics()方法,也可以使用ctypes库中的 ctypes.windll.GetSystemMetrics()方法,参考文献[5]。

    窗口界面关闭

    由于鼠标点击的主函数是个死循环,点击设置按钮后启动,图形界面除了最小化、关闭选框能操作,无法再次设置。因而主窗体和点击进程同时存在,需要在主线程中再开启线程,执行鼠标点击程序。因此,在关闭界面窗口时需要杀死开启的线程,对于进程的关闭一般使用join()方法,但是join()方法是在进程执行结束后在关闭进程,而我们的点击进程死循环永远执行不完,join()方法无效。在此查询借鉴使用ctypes库从底层杀死线程,参考文献[2]。点击窗口退出的程序参考文献[3]。

    结果

    结果最终实现了所需功能,但是多次点击设置,会开启多个不同的点击线程,此时后面还需考虑把前面的线程杀死只保留当前设置的。最后使用pyinstaller实现自定义ICON和exe程序打包,最终8.67MB。ICON可以使用PS自己设计,利用ICOFormat64.8bi插件保存为.ico文件。在搜索如何获取鼠标点击坐标是,看到了参考文献[4],白辛苦一场(掩面痛哭),已经有小伙伴实现了。在此总体代码就不再放出了,有类似需求,大家主要参考使用文献[4]吧。

    参考文献
    [1] 同一图形界面:tkinter和wxPython代码对比, https://blog.csdn.net/wjciayf/article/details/50697184?ops_request_misc=&request_id=&biz_id=102&utm_medium=distribute.pc_search_result.none-task-blog-2allsobaiduweb~default-0
    [2] 在python中实现强制关闭线程的示例, https://www.jb51.net/article/155165.htm
    [3] tkinter 点击退出执行的程序, https://blog.csdn.net/qq_28949847/article/details/105163834
    [4] python实现获取屏幕坐标位置值+VBS模拟鼠标操作,https://www.52pojie.cn/thread-974430-1-1.html
    [5] 如何在Python中获得显示器分辨率?http://www.imooc.com/wenda/detail/576561

    展开全文
  • Python 鼠标事件

    千次阅读 2017-10-08 17:15:25
    import tkinter def call(event): print(event.x,event.y) win=tkinter.Tk() frame=tkinter.Frame(win,width=200,height=200) # Frame限定范围,不显示 frame.bind("",call) #触发的函数 frame.pack() ...
  • 主要为大家详细介绍了python opencv鼠标事件实现画框圈定目标,获取坐标信息,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
  • Python鼠标模拟

    万次阅读 2020-07-10 10:50:54
    # 设定鼠标坐标位置 win32api.SetCursorPos([30, 30]) time.sleep(0.1) # 鼠标左键双击 # win32api.mouse_event(win32con.MOUSEEVENTF_LEFTDOWN, 0, 0, 0, 0) # win32api.mouse_event(win32con.MOUSEEVENTF_LEFTUP,...
  • python selenium 鼠标事件

    2017-06-06 16:17:55
    用selenium做自动化,有时候会遇到需要模拟鼠标操作才能进行的情况,比如单击、双击、点击鼠标右键、拖拽等等。而selenium给我们提供了一个类来处理这类事件——ActionChains selenium.webdriver.common.action_...
  • In this article, we will use Python-openCV(cv2) and NumPy modules. 在本文中,我们将使用Python-openCV(cv2)和NumPy模块。 Python-opencv(cv2): Python-opencv(cv2): Python-opencv(cv2) is a pyth...
  • 相应鼠标事件python代码 import tkinter #导入包 root = tkinter.Tk() #窗体对象 def button1Click(event): #自定义事件处理函数 if myButton1["background"] == "green": myButton1["background"] = "yellow" ...
  • python监测鼠标键盘点击事件

    万次阅读 2019-09-08 11:46:19
    import pythoncom import pyHook def onMouseEvent(event): # 监听鼠标事件 print( "MessageName:",event.MessageName) print( "Message:", event.Message ) print( "Time:", event.T...
  • Selenium+Python 鼠标事件

    千次阅读 2016-01-07 13:56:23
    在此博客基础上,自学,在此记录遇到的每个小问题以及细节如何实现...对于鼠标事件,借鉴虫师老师的ActinChains模块加载。 from selenium.webdriver.common.action_chains import ActionChains 测试案例: 1) 实现百
  • 小弟碰到一个selenium python 模拟鼠标事件与实际鼠标事件冲突问题,请教一下 问题描述: 在主页面想通过ActionChains模拟鼠标悬浮事件,然后在悬浮下拉菜单中定位到一个菜单执行点击事件,但在主页主体内容中有...
  • 1. 鼠标事件# coding:utf-8 # coding:cp936 from time import sleep from selenium.webdriver.common.action_chains import ActionChains class mouse(): def mouse_id_click(self, broswer, element): brosw
  • # 创建管理器 hm = PyHook3.HookManager() # 监听键盘 hm.KeyDown = onKeyboardEvent hm.HookKeyboard() ...Python 技术篇-基于PyHook3+threading多线程实现鼠标单击事件和双击事件的识别实例演示
  • python+openCV鼠标事件

    千次阅读 2019-04-25 17:18:17
    鼠标事件即包括:左键按下,左键松开,左键双击,鼠标移动等,主要需掌握函数cv2.setMouseCallback(windowName, onMouse [, param])及其对应的回调函数。下面一一进行介绍。 cv2.setMouseCallback(windowName, onMouse ...
  • 除了可以使用 click( ) 来模拟鼠标单击操作,现在Web产品中还提供了更丰富的鼠标交互方式,例如鼠标右键、双击、悬停、拖动等功能,在WebDriver中,将这些关于鼠标操作的方法都封装在 ActionChains 类中。...
  • 操作也比较简单,使用鼠标在多边形外围点击四下就可以移除该区域了,鼠标点击用左图红色圆圈表示。具体实现如下代码: #-*- coding:utf-8 -*- import cv2 import pandas as pd import numpy as np import os ...
  • 本文实例讲述了Python捕捉和模拟鼠标事件的方法。分享给大家供大家参考。具体分析如下: 这个假期玩了不少galgame,不过有些很老的游戏没有自动运行模式,点击鼠标又太伤按键了,于是想把滚动鼠标滚轮映射为点击鼠标...
  • python+selenium 鼠标事件操作

    千次阅读 2018-06-13 15:01:14
    一、前言 除了可以使用 click( ) 来模拟鼠标单击操作,现在Web产品中还提供了更丰富的鼠标交互方式,例如鼠标右键、双击、悬停、拖动等功能,在WebDriver中,将这些关于鼠标操作的方法都封装在 ActionChains 类中...
  • python鼠标控制_用Python控制鼠标

    千次阅读 2020-08-01 10:50:38
    python鼠标控制Modules used: 使用的模块: In this script, we will use PyAutoGui module. 在此脚本中,我们将使用PyAutoGui模块。 PyAutoGui module: PyAutoGui模块: PyAutoGui is a Python module that ...
  • python鼠标响应事件Question: 题: We want to input age which should be greater than 18 and less than 51, gender which should be either "Male" or "Female". If the user inputs an invalid value, the ...
  • python鼠标点击特定坐标

    千次阅读 2019-07-30 17:09:55
    安装模块 pip install Pymouse from pymouse import PyMouse m = PyMouse() ...m.move(x, y) #鼠标移动到(x,y)位置 a = m.position() print(a) m.click(x, y) #移动并且在(x,y)位置左击 这样是...
  • import tkinterwin = tkinter.Tk()win.title("鼠标单击事件")win.geometry("800x600+600+100")#<Button-1>单击鼠标左键#<Button-2>鼠标中键#<Button-3>鼠标右键#<Double-Button-1>单击鼠标...
  • I have found a way to import AutoIt into Python by using PyAutoIt. There is a ControlClick function that I have been looking for that clicks a control without moving the mouse cursor. Here is an ...
  • 您仍在努力在计算机上双击或提交表单吗?如果我告诉你我可以通过python提前写下...例如,可以定义鼠标点击位置、键盘的输入时间等,实现所有要操作的软件应用程序的自动操作。值得一提的是,它可以在win、Mac OS...
  • python鼠标模拟操作

    千次阅读 2021-02-13 10:45:43
    python鼠标模拟操作 通过简单的记录鼠标坐标,并通过计算鼠标下图片的偏移来完成简单的位置校准,用于在微偏移的界面模拟鼠标操作 源码链接 记录部分 # -*- coding:utf-8 -*- import datetime import os from ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 55,268
精华内容 22,107
关键字:

python鼠标点击事件

python 订阅