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的SQLAlchemy框架使用入门
Apr 29 Python
Python使用wget实现下载网络文件功能示例
May 31 Python
详解关于Django中ORM数据库迁移的配置
Oct 08 Python
python实践项目之监控当前联网状态详情
May 23 Python
python变量命名的7条建议
Jul 04 Python
python获取当前文件路径以及父文件路径的方法
Jul 10 Python
Django Aggregation聚合使用方法解析
Aug 01 Python
Python 最强编辑器详细使用指南(PyCharm )
Sep 16 Python
Python终端输出彩色字符方法详解
Feb 11 Python
Python基于xlrd模块处理合并单元格
Jul 28 Python
在pycharm创建scrapy项目的实现步骤
Dec 01 Python
python 爬取豆瓣网页的示例
Apr 13 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实现的json类实例
2015/07/28 PHP
CentOS 上搭建 PHP7 开发测试环境
2017/02/26 PHP
Ecshop 后台添加新功能栏目及管理权限设置教程
2017/11/21 PHP
JavaScript 中的事件教程
2007/04/05 Javascript
仿jQuery的siblings效果的js代码
2011/08/09 Javascript
JQuery 图片的展开和伸缩实例讲解
2013/04/18 Javascript
javascript客户端遍历控件与获取父容器对象示例代码
2014/01/06 Javascript
JavaScript两种跨域技术全面介绍
2014/04/16 Javascript
JavaScript获取当前url根目录(路径)
2016/06/17 Javascript
bootstrap中使用google prettify让代码高亮的方法
2016/10/21 Javascript
文件上传插件SWFUpload的使用指南
2016/11/29 Javascript
JS实现商品橱窗特效
2020/01/09 Javascript
vue 函数调用加括号与不加括号的区别
2020/10/29 Javascript
JavaScript TAB栏切换效果的示例
2020/11/05 Javascript
[01:00:17]DOTA2-DPC中国联赛 正赛 SAG vs Dynasty BO3 第二场 1月25日
2021/03/11 DOTA
Python socket C/S结构的聊天室应用实现
2014/11/30 Python
分析在Python中何种情况下需要使用断言
2015/04/01 Python
一个基于flask的web应用诞生 bootstrap框架美化(3)
2017/04/11 Python
python 列表删除所有指定元素的方法
2018/04/19 Python
python flask实现分页的示例代码
2018/08/02 Python
python常用库之NumPy和sklearn入门
2019/07/11 Python
python flask中动态URL规则详解
2019/11/22 Python
python3中利用filter函数输出小于某个数的所有回文数实例
2019/11/24 Python
使用CSS3设计地图上的雷达定位提示效果
2016/04/05 HTML / CSS
介绍一下SQL Server里面的索引视图
2016/07/31 面试题
初中生期末评语大全
2014/04/24 职场文书
电钳工人个人求职信
2014/05/10 职场文书
财务管理专业求职信
2014/06/11 职场文书
新学期标语
2014/06/30 职场文书
员工团队活动方案
2014/08/28 职场文书
购房意向书
2014/08/30 职场文书
当幸福来敲门英文观后感
2015/06/01 职场文书
教师教育心得体会
2016/01/19 职场文书
python本地文件服务器实例教程
2021/05/02 Python
详解Mysq MVCC多版本的并发控制
2022/04/29 MySQL
正则表达式基础与常用验证表达式
2022/06/16 Javascript