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


Posted in Python onJuly 05, 2019

例如有些页面元素很难获取,但是位置很固定,那么可以直接用坐标来进行操作

例如要对页面上的(x:200, y:100)进行操作,可以用如下代码:

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

dr = webdriver.Chrome()
dr.get('http://www.baidu.com')
ActionChains(dr).move_by_offset(200, 100).click().perform() # 鼠标左键点击, 200为x坐标, 100为y坐标
ActionChains(dr).move_by_offset(200, 100).context_click().perform() # 鼠标右键点击

运行效果(右键):

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

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

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

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) # 右键点击

以上这篇Python+selenium点击网页上指定坐标的实例就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
使用Python编写vim插件的简单示例
Apr 17 Python
用ReactJS和Python的Flask框架编写留言板的代码示例
Dec 19 Python
Python实现Mysql数据库连接池实例详解
Apr 11 Python
详解如何在python中读写和存储matlab的数据文件(*.mat)
Feb 24 Python
终端命令查看TensorFlow版本号及路径的方法
Jun 13 Python
详解python单元测试框架unittest
Jul 02 Python
python中eval与int的区别浅析
Aug 11 Python
浅析Python语言自带的数据结构有哪些
Aug 27 Python
Python2比较当前图片跟图库哪个图片相似的方法示例
Sep 28 Python
Python partial函数原理及用法解析
Dec 11 Python
Python3查找列表中重复元素的个数的3种方法详解
Feb 13 Python
使用Django实现把两个模型类的数据聚合在一起
Mar 28 Python
用Python实现将一张图片分成9宫格的示例
Jul 05 #Python
python获取txt文件词向量过程详解
Jul 05 #Python
Python 的字典(Dict)是如何存储的
Jul 05 #Python
关于Python 的简单栅格图像边界提取方法
Jul 05 #Python
Python3+Appium安装使用教程
Jul 05 #Python
Python叠加两幅栅格图像的实现方法
Jul 05 #Python
用vue.js组件模拟v-model指令实例方法
Jul 05 #Python
You might like
PHP 模拟登陆MSN并获得用户信息
2009/05/16 PHP
php实现查询百度google收录情况(示例代码)
2013/08/02 PHP
配置php.ini实现PHP文件上传功能
2014/11/27 PHP
详解Yii2 rules 的验证规则
2016/12/02 PHP
php设计模式之适配器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
js跟随滚动条滚动浮动代码
2009/12/31 Javascript
JavaScript中的关键字"VAR"使用详解 分享
2013/07/31 Javascript
JavaScript操作Cookie详解
2015/02/28 Javascript
JavaScript DOM元素尺寸和位置
2015/04/13 Javascript
jQuery弹出层插件Lightbox_me使用指南
2015/04/21 Javascript
微信小程序自定义底部弹出框
2020/11/16 Javascript
js实现图片上传到服务器和回显
2020/01/19 Javascript
[01:56]《DOTA2》中文配音CG
2013/04/22 DOTA
[51:00]Secret vs VGJ.S 2018国际邀请赛淘汰赛BO3 第一场 8.24
2018/08/25 DOTA
Python获取网页上图片下载地址的方法
2015/03/11 Python
简单谈谈Python中函数的可变参数
2016/09/02 Python
python如何查看系统网络流量的信息
2016/09/12 Python
Django查询数据库的性能优化示例代码
2017/09/24 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
python查找指定文件夹下所有文件并按修改时间倒序排列的方法
2018/10/21 Python
PyQt5响应回车事件的方法
2019/06/25 Python
django fernet fields字段加密实践详解
2019/08/12 Python
Pytorch 保存模型生成图片方式
2020/01/10 Python
3种适用于Python的疯狂秘密武器及原因解析
2020/04/29 Python
python Django 反向访问器的外键冲突解决
2020/05/20 Python
Pycharm-community-2020.2.3 社区版安装教程图文详解
2020/12/08 Python
Python用requests库爬取返回为空的解决办法
2021/02/21 Python
HTML5 Canvas实现平移/放缩/旋转deom示例(附截图)
2013/07/04 HTML / CSS
英国豪华真皮和布艺沙发销售网站:Darlings of Chelsea
2018/01/05 全球购物
雪山饭庄的创业计划书范文
2014/01/18 职场文书
办公设备采购方案
2014/03/16 职场文书
体育教师求职信
2014/05/24 职场文书
民政局办理协议离婚(范本)
2014/10/25 职场文书
2014年团支部工作总结
2014/11/17 职场文书
Python按顺序遍历并读取文件夹中文件
2022/04/29 Python
SQL Server中T-SQL标识符介绍与无排序生成序号的方法
2022/05/25 SQL Server