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 字符串定义
Sep 25 Python
PyMongo安装使用笔记
Apr 27 Python
numpy排序与集合运算用法示例
Dec 15 Python
利用Python2下载单张图片与爬取网页图片实例代码
Dec 25 Python
Django Celery异步任务队列的实现
Jul 24 Python
Linux下通过python获取本机ip方法示例
Sep 06 Python
python的等深分箱实例
Nov 22 Python
python 画函数曲线示例
Dec 04 Python
浅谈python3 构造函数和析构函数
Mar 12 Python
tensorflow下的图片标准化函数per_image_standardization用法
Jun 30 Python
Pycharm创建文件时自动生成文件头注释(自定义设置作者日期)
Nov 24 Python
python生成可执行exe控制Microsip自动填写号码并拨打功能
Jun 21 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
基于mysql的bbs设计(一)
2006/10/09 PHP
用 PHP5 轻松解析 XML
2006/12/04 PHP
用PHP将网址字符串转换成超链接(网址或email)
2010/05/25 PHP
Laravel 5.0 发布 新版本特性详解
2015/02/10 PHP
PHP与Ajax相结合实现登录验证小Demo
2016/03/16 PHP
PHP数组编码gbk与utf8互相转换的两种方法
2016/09/01 PHP
php实现的mysqldb读写分离操作类示例
2017/02/07 PHP
(JS实现)MapBar中坐标的加密和解密的脚本
2007/05/16 Javascript
JS 文件传参及处理技巧分析
2010/05/13 Javascript
javascript一些实用技巧小结
2011/03/18 Javascript
Three.js源码阅读笔记(基础的核心Core对象)
2012/12/27 Javascript
JavaScript DOM 编程艺术(第2版)读书笔记(JavaScript的最佳实践)
2013/10/01 Javascript
Jquery中的层次选择器与find()的区别示例介绍
2014/02/20 Javascript
举例讲解JavaScript中将数组元素转换为字符串的方法
2015/10/25 Javascript
jQuery事件委托之Safari
2016/07/05 Javascript
Angular.JS中的this指向详解
2017/05/17 Javascript
微信小程序之网络请求简单封装实例详解
2017/06/28 Javascript
js浏览器滚动条卷去的高度scrolltop(实例讲解)
2017/07/07 Javascript
vue toggle做一个点击切换class(实例讲解)
2018/03/13 Javascript
详细讲解如何创建, 发布自己的 Vue UI 组件库
2019/05/29 Javascript
浅谈TypeScript 用 Webpack/ts-node 运行的配置记录
2019/10/11 Javascript
对于Python的Django框架使用的一些实用建议
2015/04/03 Python
Python产生Gnuplot绘图数据的方法
2018/11/09 Python
在自动化中用python实现键盘操作的方法详解
2019/07/19 Python
python 画函数曲线示例
2019/12/04 Python
PyCharm 2020.2 安装详细教程
2020/09/25 Python
html5设计原理(推荐收藏)
2014/05/17 HTML / CSS
canvas绘制视频封面的方法
2018/02/05 HTML / CSS
证券期货行业个人的自我评价
2013/12/26 职场文书
网页美工求职信
2014/02/15 职场文书
鸿星尔克广告词
2014/03/21 职场文书
《独坐敬亭山》教学反思
2014/04/08 职场文书
督导岗位职责
2015/02/04 职场文书
幼儿园教师师德表现自我评价
2015/03/05 职场文书
2015年度高中教师工作总结
2015/05/26 职场文书
Spring Boot实现文件上传下载
2022/08/14 Java/Android