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动态加载变量示例分享
Feb 17 Python
python批量设置多个Excel文件页眉页脚的脚本
Mar 14 Python
python将excel转换为csv的代码方法总结
Jul 03 Python
python实现多进程按序号批量修改文件名的方法示例
Dec 30 Python
使用遗传算法求二元函数的最小值
Feb 11 Python
python生成并处理uuid的实现方式
Mar 03 Python
jupyter lab文件导出/下载方式
Apr 22 Python
Python matplotlib可视化实例解析
Jun 01 Python
Python爬虫实现自动登录、签到功能的代码
Aug 20 Python
详解python对象之间的交互
Sep 29 Python
python switch 实现多分支选择功能
Dec 21 Python
Python使用BeautifulSoup4修改网页内容
May 20 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/06/08 PHP
Laravel实现通过blade模板引擎渲染视图
2019/10/25 PHP
JS支持带x身份证号码验证函数
2008/08/10 Javascript
csdn 博客的css样式 v3
2009/02/24 Javascript
简略的前端架构心得&&基于editor为例子的编码小技巧
2010/11/25 Javascript
Javascript事件实例详解
2013/11/06 Javascript
javascript 判断两个日期之差的示例代码
2015/09/05 Javascript
JavaScript的React Web库的理念剖析及基础上手指南
2016/05/10 Javascript
第一次接触神奇的Bootstrap菜单和导航
2016/08/01 Javascript
JavaScript 闭包机制详解及实例代码
2016/10/10 Javascript
几种tab切换详解
2017/02/03 Javascript
微信小程序开发之从相册获取图片 使用相机拍照 本地图片上传
2017/04/18 Javascript
vue父子组件间引用之$parent、$children
2020/05/20 Javascript
可用于监控 mysql Master Slave 状态的python代码
2013/02/10 Python
Python中的并发编程实例
2014/07/07 Python
Python中的FTP通信模块ftplib的用法整理
2016/07/08 Python
利用Python爬取微博数据生成词云图片实例代码
2017/08/31 Python
Python面向对象程序设计之继承与多继承用法分析
2018/07/13 Python
对python3标准库httpclient的使用详解
2018/12/18 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
Python3 max()函数基础用法
2019/02/19 Python
Pandas时间序列基础详解(转换,索引,切片)
2020/02/26 Python
Python3实现打印任意宽度的菱形代码
2020/04/12 Python
matplotlib 多个图像共用一个colorbar的实现示例
2020/09/10 Python
一款利用html5和css3实现的3D立方体旋转效果教程
2016/04/26 HTML / CSS
html5指南-4.使用Geolocation实现定位功能
2013/01/07 HTML / CSS
canvas使用注意点总结
2013/07/19 HTML / CSS
台湾菁英交友:结识黄金单身的台湾人
2018/01/22 全球购物
技术人员面试提纲
2013/11/28 职场文书
经贸日语专业个人求职信
2013/12/13 职场文书
精神文明建设标语
2014/06/16 职场文书
学校学期工作总结
2015/08/13 职场文书
《莫泊桑拜师》教学反思
2016/02/22 职场文书
MySQL的join buffer原理
2021/04/29 MySQL
Go语言读取txt文档的操作方法
2022/01/22 Golang
《勇者辞职不干了》上卷BD发售宣传CM公开
2022/04/08 日漫