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下如何让web元素的生成更简单的分析
Jul 17 Python
Python 检查数组元素是否存在类似PHP isset()方法
Oct 14 Python
Python基于csv模块实现读取与写入csv数据的方法
Jan 18 Python
Python遍历某目录下的所有文件夹与文件路径
Mar 15 Python
浅谈python的dataframe与series的创建方法
Nov 12 Python
OpenCV+Python识别车牌和字符分割的实现
Jan 31 Python
python将视频转换为全字符视频
Apr 26 Python
网易2016研发工程师编程题 奖学金(python)
Jun 19 Python
Python传递参数的多种方式(小结)
Sep 18 Python
python 抓取知乎指定回答下视频的方法
Jul 09 Python
Selenium 安装和简单使用的实现
Dec 04 Python
python迷宫问题深度优先遍历实例
Jun 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 calender(日历)二个版本代码示例(解决2038问题)
2013/12/24 PHP
你可能不知道PHP get_meta_tags()函数
2014/05/12 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十一)
2014/06/25 PHP
CI框架中cookie的操作方法分析
2014/12/12 PHP
php自动加载方式集合
2016/04/04 PHP
PHP实现字符串翻转功能的方法【递归与循环算法】
2017/11/03 PHP
autoIMG 基于jquery的图片自适应插件代码
2011/03/12 Javascript
JS中判断JSON数据是否存在某字段的方法
2014/03/07 Javascript
解决checkbox的attr(checked)一直为undefined问题
2014/06/16 Javascript
基于javascript实现按圆形排列DIV元素(三)
2016/12/02 Javascript
Angular.js中处理页面闪烁的方法详解
2017/03/09 Javascript
vue中如何引入jQuery和Bootstrap
2017/04/10 jQuery
AngularJS的$location使用方法详解
2017/10/19 Javascript
jquery ajax异步提交表单数据的方法
2017/10/27 jQuery
Node中使用ES6语法的基础教程
2018/01/05 Javascript
vue源码学习之Object.defineProperty 对数组监听
2018/05/30 Javascript
微信小程序中的canvas 文字断行和省略号显示功能的处理方法
2018/11/14 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
jquery实现动态创建form并提交的方法示例
2019/05/27 jQuery
JavaScript中的全局属性与方法深入解析
2020/06/14 Javascript
vue实现滚动鼠标滚轮切换页面
2020/12/13 Vue.js
[55:03]LGD vs EG 2018国际邀请赛小组赛BO2 第二场 8.17
2018/08/18 DOTA
python进阶教程之文本文件的读取和写入
2014/08/29 Python
python 借助numpy保存数据为csv格式的实现方法
2018/07/04 Python
python实现飞机大战微信小游戏
2020/03/21 Python
python正则-re的用法详解
2019/07/28 Python
Python基础之函数基本用法与进阶详解
2020/01/02 Python
python利用tkinter实现图片格式转换的示例
2020/09/28 Python
pycharm配置QtDesigner的超详细方法
2021/01/25 Python
华硕新加坡官方网上商店:ASUS Singapore
2020/07/09 全球购物
服装采购员岗位职责
2014/03/15 职场文书
学历公证委托书
2014/04/09 职场文书
家长会标语
2014/06/24 职场文书
学习心理学心得体会
2016/01/22 职场文书
留学文书中的个人陈述,应该注意哪些问题?
2019/08/23 职场文书
Windows7下FTP搭建图文教程
2022/08/05 Servers