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专用方法与迭代机制实例分析
Sep 15 Python
python实现linux下使用xcopy的方法
Jun 28 Python
python生成随机密码或随机字符串的方法
Jul 03 Python
Python脚本实现12306火车票查询系统
Sep 30 Python
Python数据分析之真实IP请求Pandas详解
Nov 18 Python
利用Python如何实现数据驱动的接口自动化测试
May 11 Python
对python 通过ssh访问数据库的实例详解
Feb 19 Python
python实现批量视频分帧、保存视频帧
May 31 Python
PyQt5 对图片进行缩放的实例
Jun 18 Python
Python如何爬取qq音乐歌词到本地
Jun 01 Python
python 基于wx实现音乐播放
Nov 24 Python
Matlab求解数组中的最大值及它所在的具体位置
Apr 16 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四舍五入精确小数位及取整
2014/01/14 PHP
PHP添加Xdebug扩展的方法
2014/02/12 PHP
php中base64_decode与base64_encode加密解密函数实例
2014/11/24 PHP
Zend Framework教程之分发器Zend_Controller_Dispatcher用法详解
2016/03/07 PHP
JQuyer $.post 与 $.ajax 访问WCF ajax service 时的问题需要注意的地方
2011/09/20 Javascript
实现局部遮罩与关闭原理及代码
2013/02/04 Javascript
关于js注册事件的常用方法
2013/04/03 Javascript
微信小程序 增、删、改、查操作实例详解
2017/01/13 Javascript
js eval函数使用,js对象和字符串互转实例
2017/03/06 Javascript
原生JS实现导航下拉菜单效果
2020/11/25 Javascript
脚手架vue-cli工程webpack的基本用法详解
2018/09/29 Javascript
jQuery实现简易QQ聊天框
2020/02/10 jQuery
Vue 的 v-model用法实例
2020/11/23 Vue.js
Python Web框架Flask信号机制(signals)介绍
2015/01/01 Python
numpy排序与集合运算用法示例
2017/12/15 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
10 行 Python 代码教你自动发送短信(不想回复工作邮件妙招)
2018/10/11 Python
python里 super类的工作原理详解
2019/06/19 Python
使用pyinstaller打包PyQt4程序遇到的问题及解决方法
2019/06/24 Python
如何使用Python实现斐波那契数列
2019/07/02 Python
如何通过Django使用本地css/js文件
2020/01/20 Python
python实现梯度下降法
2020/03/24 Python
Python无头爬虫下载文件的实现
2020/04/02 Python
白宫黑市官网:White House Black Market
2016/11/17 全球购物
Daniel Wellington官方海外旗舰店:丹尼尔惠灵顿DW手表
2018/02/22 全球购物
写一个在SQL Server创建表的SQL语句
2012/03/10 面试题
大专自我鉴定范文
2013/10/01 职场文书
租房协议书范本
2014/04/09 职场文书
公司授权委托书范文
2014/08/02 职场文书
王金山在党的群众路线教育实践活动总结大会上的讲话稿
2014/10/25 职场文书
教师党的群众路线学习心得体会
2014/11/04 职场文书
2015自愿离婚协议书范本
2015/01/28 职场文书
公司更名通知函
2015/04/24 职场文书
教师继续教育反思周记
2015/06/25 职场文书
治庸问责工作总结
2015/08/11 职场文书
2021年国漫热度排行前十,完美世界上榜,第四是美国动画作品
2022/03/18 国漫