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中给List添加元素的4种方法分享
Nov 28 Python
Python编程入门的一些基本知识
May 13 Python
windows10系统中安装python3.x+scrapy教程
Nov 08 Python
python生成器,可迭代对象,迭代器区别和联系
Feb 04 Python
Django权限机制实现代码详解
Feb 05 Python
python3爬取各类天气信息
Feb 24 Python
python: 自动安装缺失库文件的方法
Oct 22 Python
Python Django给admin添加Action的方法实例详解
Apr 29 Python
python实现超市管理系统(后台管理)
Oct 25 Python
Python利用matplotlib绘制约数个数统计图示例
Nov 26 Python
Python 一行代码能实现丧心病狂的功能
Jan 18 Python
python 已知平行四边形三个点,求第四个点的案例
Apr 12 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生成缩略图填充白边(等比缩略图方案)
2013/12/25 PHP
PHP实现股票趋势图和柱形图
2015/02/07 PHP
php实现比较两个字符串日期大小的方法
2015/05/12 PHP
ThinkPHP和UCenter接口冲突的解决方法
2016/07/25 PHP
PHP+JavaScript实现无刷新上传图片
2017/02/21 PHP
[原创]PHP正则删除html代码中a标签并保留标签内容的方法
2017/05/23 PHP
ThinkPHP框架整合微信支付之刷卡模式图文详解
2019/04/10 PHP
PHP mkdir创建文件夹实现方法解析
2020/11/13 PHP
关于query Javascript CSS Selector engine
2013/04/12 Javascript
JavaScript 动态加载脚本和样式的方法
2015/04/13 Javascript
JavaScript函数学习总结以及相关的编程习惯指南
2015/11/16 Javascript
分享javascript实现的冒泡排序代码并优化
2016/06/05 Javascript
javascript简单实现跟随滚动条漂浮的返回顶部按钮效果
2016/08/19 Javascript
Three.js快速入门教程
2016/09/09 Javascript
浅谈JavaScript中promise的使用
2017/01/11 Javascript
jQuery选择器之属性过滤选择器详解
2017/09/28 jQuery
nodejs判断文件、文件夹是否存在及删除的方法
2017/11/10 NodeJs
vue实现图片加载完成前的loading组件方法
2018/02/05 Javascript
详解ES6 export default 和 import语句中的解构赋值
2019/05/28 Javascript
js键盘事件实现人物的行走
2020/01/17 Javascript
javascript canvas时钟模拟器
2020/07/13 Javascript
[02:44]DOTA2英雄基础教程 钢背兽
2013/12/19 DOTA
Python 条件判断的缩写方法
2008/09/06 Python
在Python中使用元类的教程
2015/04/28 Python
Python操作MySQL模拟银行转账
2018/03/12 Python
python使用pipeline批量读写redis的方法
2019/02/18 Python
windows 10 设定计划任务自动执行 python 脚本的方法
2019/09/11 Python
法国购买二手电子产品网站:Asgoodasnew
2020/03/27 全球购物
LINUX下线程,GDI类的解释
2012/04/17 面试题
会计专业导师推荐信
2014/03/08 职场文书
教师师德承诺书
2014/03/26 职场文书
挂职锻炼个人总结
2015/03/05 职场文书
信贷客户经理岗位职责
2015/04/09 职场文书
红高粱观后感
2015/06/10 职场文书
Pytorch中Softmax和LogSoftmax的使用详解
2021/06/05 Python
浅谈MySQL next-key lock 加锁范围
2021/06/07 MySQL