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爬虫
Dec 25 Python
redis之django-redis的简单缓存使用
Jun 07 Python
Django分页查询并返回jsons数据(中文乱码解决方法)
Aug 02 Python
Python操作Excel插入删除行的方法
Dec 10 Python
python 调用钉钉机器人的方法
Feb 20 Python
python实现视频读取和转化图片
Dec 10 Python
安装PyInstaller失败问题解决
Dec 14 Python
pytorch:实现简单的GAN示例(MNIST数据集)
Jan 10 Python
Pycharm pyuic5实现将ui文件转为py文件,让UI界面成功显示
Apr 08 Python
Python分类测试代码实例汇总
Jul 23 Python
python 利用jieba.analyse进行 关键词提取
Dec 17 Python
python使用XPath解析数据爬取起点小说网数据
Apr 22 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实现的获取网页中的图片并保存到本地的代码
2010/01/05 PHP
PHP7使用ODBC连接SQL Server2008 R2数据库示例【基于thinkPHP5.1框架】
2019/05/06 PHP
javascript动态添加样式(行内式/嵌入式/外链式等规则)
2013/06/24 Javascript
setInterval与clearInterval的使用示例代码
2014/01/28 Javascript
jquery禁止输入数字以外的字符的示例(纯数字验证码)
2014/04/10 Javascript
jquery实现无刷新验证码的简单实例
2016/05/19 Javascript
webpack多页面开发实践
2017/12/18 Javascript
Vue-Router基础学习笔记(小结)
2018/10/15 Javascript
微信jssdk逻辑在vue中的运用详解
2018/11/14 Javascript
JS数组求和的常用方法实例小结
2019/01/07 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
Vue2.x通用编辑组件的封装及应用详解
2019/05/28 Javascript
详解webpack的clean-webpack-plugin插件报错
2020/10/16 Javascript
vue实现登录、注册、退出、跳转等功能
2020/12/23 Vue.js
使用AutoJs实现微信抢红包的代码
2020/12/31 Javascript
原生JavaScript实现随机点名表
2021/01/14 Javascript
[02:27]DOTA2英雄基础教程 莱恩
2014/01/17 DOTA
[02:14]完美“圣”典2016风云人物:xiao8专访
2016/12/01 DOTA
Python实现的简单模板引擎功能示例
2017/09/02 Python
Python常见字符串操作函数小结【split()、join()、strip()】
2018/02/02 Python
Python从零开始创建区块链
2018/03/06 Python
使用matplotlib画散点图的方法
2018/05/25 Python
python pickle存储、读取大数据量列表、字典数据的方法
2019/07/07 Python
基于python实现获取网页图片过程解析
2020/05/11 Python
Python爬取酷狗MP3音频的步骤
2021/02/26 Python
香蕉共和国加拿大官网:Banana Republic加拿大
2018/08/06 全球购物
TUMI新加坡官网:国际领先的商旅箱包品牌
2019/01/12 全球购物
Quiksilver荷兰官方网站:冲浪和滑雪板
2019/11/16 全球购物
销售业务实习自我鉴定
2013/09/23 职场文书
毕业自我鉴定
2013/11/05 职场文书
机房搬迁方案
2014/05/01 职场文书
2015元旦家电促销活动策划方案
2014/12/09 职场文书
铁路安全反思材料
2014/12/24 职场文书
2015年消费者权益日活动总结
2015/02/09 职场文书
2019年大学毕业生个人自我鉴定范文大全
2019/03/21 职场文书
Python基础之元组与文件知识总结
2021/05/19 Python