首页 > 编程语言 >Python+selenium点击网页上指定坐标

Python+selenium点击网页上指定坐标

时间:2023-04-12 18:55:52浏览次数:36  
标签:__ 网页 Python selenium ActionChains 点击 坐标 dr click

 

from selenium import webdriver
from selenium.webdriver.common.action_chains import ActionChains

def click_locxy(dr, x, y, left_click=True):
    '''
    dr:浏览器
    x:页面x坐标
    y:页面y坐标
    left_click:True为鼠标左键点击,否则为右键点击
    '''
    if left_click:
        ActionChains(dr).move_by_offset(x, y).click().perform()
    else:
        ActionChains(dr).move_by_offset(x, y).context_click().perform()
    ActionChains(dr).move_by_offset(-x, -y).perform()  # 将鼠标位置恢复到移动前

if __name__ == "__main__":
    dr = webdriver.Chrome()
    dr.get('http://www.baidu.com')
    click_locxy(dr, 100, 0) # 左键点击
    click_locxy(dr, 100, 100, left_click=False) # 右键点击

  

需要注意的是,每次移动都是在上一次坐标的基础上(即坐标值是累积的),如上的代码实际运行时,点击完左键再点击右键,坐标会变成(400, 200)。

可以用封装来抵消这种累积(点击完之后将鼠标坐标恢复),代码如上:

 

参考:https://www.cnblogs.com/rmticocean/articles/16051017.html

标签:__,网页,Python,selenium,ActionChains,点击,坐标,dr,click
From: https://www.cnblogs.com/pu369/p/17310824.html

相关文章

  • (三)python多进程multiprocessing模块的变量传递问题:父进程中的numpy.array对象隐式序列
    参考:https://docs.python.org/zh-cn/3/library/multiprocessing.htmlcloudpickle——Python分布式序列化的专用模块python多进程multiprocessing模块的变量传递问题:父进程中的numpy.array对象隐式序列化到子进程后的inplace操作的问题-Death_Knight-博客园(cnblogs.com)......
  • python之封装mysql
     数据查询类封装1.功能分析可以连接不同sql数据库查一条数据,多条数据可以获取不同格式的数据2.封装成数据库查询类封装思路:数据库查询模块有多个功能,且需要复用,所以封装成类在构造方法中创建连接创建对象方法实现各种查询#-*-coding:utf-8-*-#@Time......
  • 更新 Python 的 setuptools 包
    [......
  • python自动化之unittest
    一、官方文档:https://docs.python.org/zh-cn/3/library/unittest.html二、unittest使用unittest使用规范需要导入unittest包测试类必须继承unittest.TestCase类测试方法必须要以test开头测试用例名称不能相同,相同的情况可能出现用例遗漏执行的情况ddt使用事项见下方......
  • python关于*args所能接收的参数、关于**kwargs所接收的参数详解
    1#!/usr/bin/envpython2#-*-coding:utf8-*-3#python-day32-20170110:456#关于*args所能接收的参数78#这种接收的是位置参数,可变长9deffunc1(*args):10print(args,type(args))1112#传入位置参数可以被args所接收,以元组的形式来保存......
  • python get请求抓取网页
    importrequestsurl='https://www.douban.com/search?'#req=requests.get(url)headers={"User-Agent":"Mozilla/5.0(WindowsNT10.0;Win64;x64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/94.0.4606.81Safari/537.36......
  • Python 环境迁移
    平时用python环境会装一堆依赖,也包括自己的模块,要迁移到陌生环境,得好好处理才行。下面介绍个方法,实践过还可以:总结下步骤:miniconda或conda安装一个python环境,python版本最好和后面新环境一样。condacreate-nszpython=3.6.8在该conda里面装好自己的各种依赖,并跑起来。pi......
  • 把网页保存为可复制可编辑的PDF
    当你在网上看到了一篇文章,想永久保存下来,你会怎么办?ctrl+S保存为html或者mhtm?有时候html里有代码不让你保存、或者保存后打开内容有问题(如某csdn保存的html会跳转),有时候保存的网页html里图片不会正常显示(如wei信的公众号的文章在浏览器打开保存,并非wei信不让保存,而是它格式问题),有......
  • linux下使用pyinstaller打包python脚本
    最近给运维写一个系统维护的python脚本,但是被告知生产环境有很多服务器没有安装python解释器,于是在网上搜索多pyinstaller解决方案,本文简单记录之。下载pyinstaller。最新的pyinstaller版本为2.0版本,官方网站http://www.pyinstaller.org。下载链接:http://jaist.dl.sourceforge......
  • 在docker安装Python环境提供给其他docker使用
    1.在宿主机新建一个目录2.在app目录下新建一个Dockerfile文件本文永久更新地址:1.在宿主机新建一个目录在宿主机上新建一个目录如app/,在app目录里面导入项目需要依赖的包在项目根目录下输入命令,导出python项目所有的依赖包pipfreeze>requirements.txt把导出的re......