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之从if开始语句的征程
Sep 14 Python
Python实现LRU算法的2种方法
Jun 24 Python
python直接访问私有属性的简单方法
Jul 25 Python
Django配置celery(非djcelery)执行异步任务和定时任务
Jul 16 Python
Ubuntu下Anaconda和Pycharm配置方法详解
Jun 14 Python
python 基于TCP协议的套接字编程详解
Jun 29 Python
pandas DataFrame行或列的删除方法的实现示例
Aug 02 Python
Python Pandas 转换unix时间戳方式
Dec 07 Python
tensorflow指定GPU与动态分配GPU memory设置
Feb 03 Python
Python3.7实现验证码登录方式代码实例
Feb 14 Python
PYQT5 vscode联合操作qtdesigner的方法
Mar 24 Python
python爬取微博评论的实例讲解
Jan 15 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
关于BIG5-HKSCS的解决方法
2007/03/20 PHP
PHP中文编码小技巧
2014/12/25 PHP
PHP附件下载中文名称乱码的解决方法
2015/12/17 PHP
关于PHP通用返回值设置方法
2017/03/31 PHP
统计PHP目录中的文件数方法
2019/03/05 PHP
PHP单元测试配置与使用方法详解
2019/12/27 PHP
浅析JavaScript中的常用算法与函数
2013/11/21 Javascript
jQuery表格插件datatables用法总结
2014/09/05 Javascript
jQuery中parent()方法用法实例
2015/01/07 Javascript
js操作滚动条事件实例
2015/01/29 Javascript
jQuery simpleModal插件的使用介绍
2016/08/30 Javascript
js仿QQ邮箱收件人选择与搜索功能
2017/02/10 Javascript
JS中如何实现Laravel的route函数详解
2017/02/12 Javascript
ionic环境配置及问题详解
2017/06/27 Javascript
基于Vue 2.0的模块化前端 UI 组件库小结
2017/12/21 Javascript
Vue用v-for给循环标签自身属性添加属性值的方法
2018/10/18 Javascript
require.js 加载过程与使用方法介绍
2018/10/30 Javascript
JS中的一些常用的函数式编程术语
2019/06/15 Javascript
JavaScript实现的3D旋转魔方动画效果实例代码
2019/07/31 Javascript
ionic+html5+API实现双击返回键退出应用
2019/09/17 Javascript
Python中的装饰器用法详解
2015/01/14 Python
Python信息抽取之乱码解决办法
2017/06/29 Python
python调用动态链接库的基本过程详解
2019/06/19 Python
使用Python中的reduce()函数求积的实例
2019/06/28 Python
用Python解数独的方法示例
2019/10/24 Python
pytorch进行上采样的种类实例
2020/02/18 Python
python3使用Pillow、tesseract-ocr与pytesseract模块的图片识别的方法
2020/02/26 Python
python3.4中清屏的处理方法
2020/07/06 Python
使用Python实现微信拍一拍功能的思路代码
2020/07/09 Python
python 对象真假值的实例(哪些视为False)
2020/12/11 Python
AmazeUI 折叠面板的实现代码
2020/08/17 HTML / CSS
蒙蒂塞罗商店:Monticello Shop
2018/11/25 全球购物
美国和加拿大计算机和电子产品购物网站:TigerDirect.com
2019/09/13 全球购物
领导班子四风问题对照检查材料
2014/09/27 职场文书
派出所正风肃纪剖析材料
2014/10/10 职场文书
社区学习党的群众路线教育实践活动心得体会
2014/11/03 职场文书