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使用百度翻译进行中翻英示例
Apr 14 Python
Python使用MD5加密字符串示例
Aug 22 Python
python调用OpenCV实现人脸识别功能
May 25 Python
Python实现两个list求交集,并集,差集的方法示例
Aug 02 Python
利用Pycharm断点调试Python程序的方法
Nov 29 Python
详解Python字符串切片
May 20 Python
Django rest framework jwt的使用方法详解
Aug 08 Python
python opencv根据颜色进行目标检测的方法示例
Jan 15 Python
浅谈图像处理中掩膜(mask)的意义
Feb 19 Python
Python Serial串口基本操作(收发数据)
Nov 06 Python
Python 使用xlwt模块将多行多列数据循环写入excel文档的操作
Nov 10 Python
python lambda的使用详解
Feb 26 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自定义session示例分享
2014/04/22 PHP
Yii使用find findAll查找出指定字段的实现方法
2014/09/05 PHP
PHP中Memcache操作类及用法实例
2014/12/12 PHP
smarty学习笔记之常见代码段用法总结
2016/03/19 PHP
PHP中字符串长度的截取用法示例
2017/01/12 PHP
PHP实现的AES 128位加密算法示例
2019/09/16 PHP
基于jQuery的ajax功能实现web service的json转化
2009/08/29 Javascript
基于jquery的划词搜索实现(备忘)
2010/09/14 Javascript
js运动框架_包括图片的淡入淡出效果
2013/05/11 Javascript
javascript Event对象详解及使用示例
2013/11/22 Javascript
js中的preventDefault与stopPropagation详解
2014/01/29 Javascript
浅析Node在构建超媒体API中的作用
2014/07/30 Javascript
js使用Array.prototype.sort()对数组对象排序的方法
2015/01/28 Javascript
JS实现的生成随机数的4个函数分享
2015/02/11 Javascript
关于动态生成dom绑定事件失效的原因及解决方法
2016/08/06 Javascript
jQuery Ajax使用FormData上传文件和其他数据后端web.py获取
2017/06/11 jQuery
React Native 截屏组件的示例代码
2017/12/06 Javascript
对VUE中的对象添加属性
2018/09/18 Javascript
解决vue 单文件组件中样式加载问题
2019/04/24 Javascript
Vue动态面包屑功能的实现方法
2019/07/01 Javascript
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
js刷新页面location.reload()用法详解
2019/12/09 Javascript
使用python绘制人人网好友关系图示例
2014/04/01 Python
Python实现备份文件实例
2014/09/16 Python
Pytorch之finetune使用详解
2020/01/18 Python
如何利用CSS3制作3D效果文字具体实现样式
2013/05/02 HTML / CSS
CSS3效果:自定义“W”形运行轨迹实例
2017/03/29 HTML / CSS
详解HTML5 Canvas标签及基本使用
2020/01/10 HTML / CSS
纽约香氛品牌:NEST Fragrance
2018/10/15 全球购物
c++工程师面试问题
2013/08/04 面试题
商务邀请函范文
2014/01/14 职场文书
学术会议邀请函范文
2014/01/22 职场文书
勤俭节约倡议书范文
2015/04/29 职场文书
解除合同协议书范本
2016/03/21 职场文书
实操Python爬取觅知网素材图片示例
2021/11/27 Python
mysql创建存储过程及函数详解
2021/12/04 MySQL