selenium处理元素定位点击无效问题


Posted in Python onJune 12, 2019

在WEB自动化测试过程中,经常会遇到这样的问题:

元素定位到了,但是点击无效?有人可能会问了,怎么判断元素定位到了,这个问题很好判断

1.给元素加高亮显示

self.driver.execute_script(
   "arguments[0].setAttribute('style', arguments[1]);",
   element,
   "border: 2px solid red;" #边框border:2px; red红色
  )

arguments[0] 这个参数,可以理解为python中的字符串格式化。比如"{}{}".format('aaa','bbbb')

2.执行点击过程不报错。

不会报一些找不到元素之类的错误。

怎么判断元素定位到了,点击没成功(这里说一下,一般是做了点击操作,只是我们直观去判断没有点击成功)

那么,现在来说一下如何解决这个问题。

解决问题:

1.分析一下,默认selenium的点击操作是点元素0,0点坐标,那么我们可以在元素x,y坐标上加5,让点击操作往里一点。

导入包ActionChains,

from selenium.webdriver.common.action_chains import ActionChains
ele = self.find_element(*loc)
ActionChains(driver).move_to_element(ele).move_by_offset(5,5).click().perform()

通过如上代码,先定位元素,然后移动到元素,在元素基础上做偏移x,y 5,5然后点击。

需要注意的是最后的perform()。要加上这个。否则不生效。

2.通过js去点击元素。

可以通过dom去定位,或者jquery定位。然后点击操作。这里不具体说明了。可以找度娘。

3.可以分析代码,如果有直接调用函数的地方,可以通过js直接调用。

要说明的是,这个方法,一般不可行。因为js前端代码会压缩加密。所以上线后我们看到的是压缩的。

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
Python 字符串中的字符倒转
Sep 06 Python
简单的Python2.7编程初学经验总结
Apr 01 Python
Python读取图片属性信息的实现方法
Sep 11 Python
Python爬取当当、京东、亚马逊图书信息代码实例
Dec 09 Python
Python实现程序判断季节的代码示例
Jan 28 Python
Python告诉你木马程序的键盘记录原理
Feb 02 Python
使用python list 查找所有匹配元素的位置实例
Jun 11 Python
Tensorflow读取并输出已保存模型的权重数值方式
Jan 04 Python
django-orm F对象的使用 按照两个字段的和,乘积排序实例
May 18 Python
Python中的datetime包与time包包和模块详情
Feb 28 Python
Python下载商品数据并连接数据库且保存数据
Mar 31 Python
Python实战之大鱼吃小鱼游戏的实现
Apr 01 Python
selenium跳过webdriver检测并模拟登录淘宝
Jun 12 #Python
python3.4 将16进制转成字符串的实例
Jun 12 #Python
python binascii 进制转换实例
Jun 12 #Python
Python3 实现串口两进程同时读写
Jun 12 #Python
详解pyppeteer(python版puppeteer)基本使用
Jun 12 #Python
python实战串口助手_解决8串口多个发送的问题
Jun 12 #Python
对Python 简单串口收发GUI界面的实例详解
Jun 12 #Python
You might like
基于mysql的论坛(6)
2006/10/09 PHP
PHP 缓存实现代码及详细注释
2010/05/16 PHP
php设计模式 Strategy(策略模式)
2011/06/26 PHP
tp5框架使用composer实现日志记录功能示例
2019/01/10 PHP
彻底搞懂JS无缝滚动代码
2007/01/03 Javascript
js 解决“options为空或不是对象”
2008/12/22 Javascript
jQuery checkbox全选/取消全选实现代码
2009/11/14 Javascript
扩展javascript的Date方法实现代码(prototype)
2010/11/20 Javascript
JQuery.closest(),parent(),parents()寻找父结点
2012/02/17 Javascript
jQuery实现信息提示框(带有圆角框与动画)效果
2015/08/07 Javascript
JS制作适用于手机和电脑的通知信息效果
2016/10/28 Javascript
ECMAScript6 新特性范例大全
2017/03/24 Javascript
JS移动端/H5同时选择多张图片上传并使用canvas压缩图片
2017/06/20 Javascript
详解Vue.js之视图和数据的双向绑定(v-model)
2017/06/23 Javascript
浅谈React + Webpack 构建打包优化
2018/01/23 Javascript
关于js对textarea换行符的处理方法浅析
2018/08/03 Javascript
Angularjs 根据一个select的值去设置另一个select的值方法
2018/08/13 Javascript
微信小程序实现评论功能
2018/11/28 Javascript
JS实现动态添加外部js、css到head标签的方法
2019/06/05 Javascript
vue 输入电话号码自动按3-4-4分割功能的实现代码
2020/04/30 Javascript
vuex中遇到的坑,vuex数据改变,组件中页面不渲染操作
2020/11/16 Javascript
[06:07]DOTA2-DPC中国联赛3月5日Recap集锦
2021/03/11 DOTA
手动实现把python项目发布为exe可执行程序过程分享
2014/10/23 Python
python3 enum模块的应用实例详解
2019/08/12 Python
基于Python的图像数据增强Data Augmentation解析
2019/08/13 Python
python requests抓取one推送文字和图片代码实例
2019/11/04 Python
关于torch.optim的灵活使用详解(包括重写SGD,加上L1正则)
2020/02/20 Python
Python结合百度语音识别实现实时翻译软件的实现
2021/01/18 Python
Groupon比利时官方网站:特卖和网上购物高达-70%
2019/08/09 全球购物
.NET remoting中对象激活的两种方式
2015/06/08 面试题
小学教师管理制度
2014/01/18 职场文书
农村葬礼主持词
2014/03/31 职场文书
股权收购意向书
2014/04/01 职场文书
党员承诺践诺书
2014/05/20 职场文书
大学生职业生涯十年规划书范文
2014/09/17 职场文书
2014年技术员工作总结
2014/11/18 职场文书