您的位置: 网站首页> selenium爬虫> 当前文章
python鼠标移动点击等操作之pyouse详解
老董-我爱我家房产SEO2020-09-29183围观,143赞
selenium自动化测试的时候虽然可以进行一些鼠标操作,但是有些情况并不能满足需求,此时可以借助pyouse库,pymouse已经集成到了PyUserInput,安装PyUserInput即可使用。
PyUserInput直接用pip命令安装,但是安装前需要安装pywin32和pyHook模块。pywin32可以用pip搞定,pyHook模块下载地址 https://www.lfd.uci.edu/~gohlke/pythonlibs/#pyhook,你也可以去github下载。
selenium那套机制操作鼠标在网页上移动肉眼是看不到鼠标移动的,selenium操作鼠标也不影响我们正常使用鼠标本身。不过,pyouse操作鼠标能看到鼠标【真的】在被控制!pymouse和我们共享的就是肉眼能看到的那个鼠标!
pyouse玩鼠标完全独立于浏览器,一切操作都是基于屏幕的坐标来的!
一个简单案例:pyouse获取屏幕分辨率,然后鼠标移动到屏幕中间。
# ‐*‐coding:utf‐8‐*‐ from pymouse import PyMouse m = PyMouse() x_dim, y_dim = m.screen_size() print(x_dim,y_dim) # 这是屏幕分辨率 x,y = int(x_dim/2),int(y_dim/2) # 必须是【整数】 m.move(x,y) # 移动到屏幕中央
下面的代码,大家可以看看:
# -*- coding: utf-8 -*- from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from selenium.webdriver.support import expected_conditions as EC from selenium.webdriver.chrome.options import Options import time from pymouse import PyMouse def click_url(): driver.get('https://m.5i5j.com/bj/') # 等待页面加载 lookesf = WebDriverWait(driver, 30).until( EC.visibility_of_element_located((By.CLASS_NAME, "lookesf")) ) js = 'window.scrollBy(0,{0})'.format('document.body.scrollHeight') driver.execute_script(js) # 给你10秒时间用手把鼠标移动到点击的位置 m = PyMouse() time.sleep(10) # 获取屏幕上要点击位置的坐标点击 x, y = m.position() m.move(x, y) m.click(x,y) # 继续看下鼠标的移动 m.move(300,500) time.sleep(10) m.move(200,100) time.sleep(10) m.scroll() if __name__ == "__main__": option = Options() option.binary_location = "C:/Program Files (x86)/Google/Chrome/Application/chrome.exe" # 安装的位置 iphone_ua = 'Mozilla/5.0 (iPhone; CPU iPhone OS 11_0 like Mac OS X) AppleWebKit/604.1.38 (KHTML, like Gecko) Version/11.0 Mobile/15A372' mobile_emulation = { "deviceMetrics": {"width": 375, "height": 667, 'pixelRatio': 3}, # 分辨率配置 "userAgent": iphone_ua # UA } option.add_experimental_option("mobileEmulation", mobile_emulation) driver = webdriver.Chrome(options=option) click_url() driver.quit()
看源码可以发现,click()方法可以接受更多参数来实现左键、右键、或者点击多少次等操作。
def click(self, x, y, button=1, n=1): """ Click a mouse button n times on a given x, y. Button is defined as 1 = left, 2 = right, 3 = middle. """ 点击坐标x,y位置n次,1代表左键,2代表右键,3代表鼠标滚轮。
更多鼠标操作方法如下,具体使用看下源码即可,非常简单:
click() drag() move() position() press() release() screen_size() scroll()
很赞哦!
python编程网提示:转载请注明来源www.python66.com。
有宝贵意见可添加站长微信(底部),获取技术资料请到公众号(底部)。同行交流请加群
相关文章
文章评论
-
python鼠标移动点击等操作之pyouse详解文章写得不错,值得赞赏
站点信息
- 网站程序:Laravel
- 客服微信:a772483200