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多重继承新算法C3介绍
Sep 28 Python
如何准确判断请求是搜索引擎爬虫(蜘蛛)发出的请求
Oct 13 Python
python 地图经纬度转换、纠偏的实例代码
Aug 06 Python
python实现决策树分类(2)
Aug 30 Python
基于Python的图像数据增强Data Augmentation解析
Aug 13 Python
在Python中使用MySQL--PyMySQL的基本使用方法
Nov 19 Python
使用python实现回文数的四种方法小结
Nov 24 Python
利用python绘制数据曲线图的实现
Apr 09 Python
pycharm 2018 激活码及破解补丁激活方式
Sep 21 Python
python字典通过值反查键的实现(简洁写法)
Sep 30 Python
详解tf.device()指定tensorflow运行的GPU或CPU设备实现
Feb 20 Python
python和anaconda的区别
May 06 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
PHP调用MySQL的存储过程的实现代码
2008/08/12 PHP
php随机生成数字字母组合的方法
2015/03/18 PHP
Laravel 5.4重新登录实现跳转到登录前页面的原理和方法
2017/07/13 PHP
PHP结合Ffmpeg快速搭建流媒体服务的实践记录
2018/10/31 PHP
javascript获得服务器端控件的ID的实现代码
2011/12/28 Javascript
JS判断不同分辨率调用不同的CSS样式文件实现思路及测试代码
2013/01/23 Javascript
JavaScript正则表达式中的ignoreCase属性使用详解
2015/06/16 Javascript
js滚轮事件兼容性问题需要注意哪些
2016/11/15 Javascript
jQuery用FormData实现文件上传的方法
2016/11/21 Javascript
js监听input输入框值的实时变化实例
2017/01/26 Javascript
BootStrap的两种模态框方式
2017/05/10 Javascript
AngularJs每天学习之总体介绍
2017/08/07 Javascript
Vue 滚动行为的具体使用方法
2017/09/13 Javascript
vue中使用localstorage来存储页面信息
2017/11/04 Javascript
Swiper自定义分页器使用详解
2017/12/28 Javascript
vue项目动态设置页面title及是否缓存页面的问题
2018/11/08 Javascript
JavaScript文本特效实例小结【3个示例】
2018/12/22 Javascript
详解服务端预渲染之Nuxt(介绍篇)
2019/04/07 Javascript
微信小程序云开发实现增删改查功能
2019/05/17 Javascript
JS实现返回上一页并刷新页面的方法分析
2019/07/16 Javascript
Node.js使用MongoDB的ObjectId作为查询条件的方法
2019/09/10 Javascript
微信小程序实现时间进度条功能
2020/11/17 Javascript
Vue常用的全选/反选的示例代码
2020/02/19 Javascript
python输入整条数据分割存入数组的方法
2018/11/13 Python
win7下 python3.6 安装opencv 和 opencv-contrib-python解决 cv2.xfeatures2d.SIFT_create() 的问题
2019/10/24 Python
python加密解密库cryptography使用openSSL生成的密匙加密解密
2020/02/11 Python
带你学习Python如何实现回归树模型
2020/07/16 Python
世界首屈一指的在线男士内衣权威:HisRoom
2017/08/05 全球购物
竞争上岗演讲稿
2014/01/05 职场文书
实习生的自我评价
2014/01/08 职场文书
大学班级干部的自我评价分享
2014/02/10 职场文书
汽车广告策划方案
2014/05/31 职场文书
外出听课学习心得体会
2016/01/15 职场文书
Jupyter notebook 不自动弹出网页的解决方案
2021/05/21 Python
英国数字版游戏销量周榜公布 《小缇娜的奇幻之地》登顶
2022/04/03 其他游戏
MySQL新手入门进阶语句汇总
2022/09/23 MySQL