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 相关文章推荐
使用cx_freeze把python打包exe示例
Jan 24 Python
python操作xml文件详细介绍
Jun 09 Python
Python生成随机MAC地址
Mar 10 Python
python检查字符串是否是正确ISBN的方法
Jul 11 Python
简单谈谈python中的多进程
Nov 06 Python
使用 Python 实现文件递归遍历的三种方式
Jul 18 Python
Python实现SQL注入检测插件实例代码
Feb 02 Python
python实现字符串加密 生成唯一固定长度字符串
Mar 22 Python
详解python编译器和解释器的区别
Jun 24 Python
python opencv 读取图片 返回图片某像素点的b,g,r值的实现方法
Jul 03 Python
python process模块的使用简介
May 14 Python
Python制作动态字符画的源码
Aug 04 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高效率写法(详解原因)
2013/06/20 PHP
ubuntu下配置nginx+php+mysql详解
2015/09/10 PHP
PHP实现linux命令tail -f
2016/02/22 PHP
php函数传值的引用传递注意事项分析
2016/06/25 PHP
Laravel网站打开速度优化的方法汇总
2017/07/16 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
用js实现的页面关键字密度查询代码
2007/12/27 Javascript
js去字符串前后空格5种实现方法及比较
2013/04/03 Javascript
JavaScript实现关键字高亮功能
2014/11/12 Javascript
浅谈jQuery.easyui的datebox格式化时间
2015/06/25 Javascript
JS简单实现多级Select联动菜单效果代码
2015/09/06 Javascript
详解js跨域原理以及2种解决方案
2015/12/09 Javascript
js实现网页收藏功能
2015/12/17 Javascript
使用jQuery实现页面定时弹出广告效果
2017/08/24 jQuery
微信小程序支付PHP代码
2018/08/23 Javascript
基于Vue.js与WordPress Rest API构建单页应用详解
2019/09/16 Javascript
浅谈vue中get请求解决传输数据是数组格式的问题
2020/08/03 Javascript
Vue自定义全局弹窗组件操作
2020/08/11 Javascript
python根据开头和结尾字符串获取中间字符串的方法
2015/03/26 Python
初步剖析C语言编程中的结构体
2016/01/16 Python
关于Python正则表达式 findall函数问题详解
2018/03/22 Python
Php多进程实现代码
2018/05/07 Python
python+Splinter实现12306抢票功能
2018/09/25 Python
西班牙香水和化妆品购物网站:Arenal Perfumerías
2019/03/01 全球购物
Zatchels官网:英国剑桥包品牌
2021/01/12 全球购物
PHP如何去执行一个SQL语句
2016/03/05 面试题
中式餐厅创业计划书范文
2014/01/23 职场文书
《陋室铭》教学反思
2014/02/26 职场文书
党的群众路线对照检查材料(个人)
2014/09/24 职场文书
先进个人材料怎么写
2014/12/30 职场文书
2015社区六五普法工作总结
2015/04/21 职场文书
小学一年级语文教学反思
2016/03/03 职场文书
golang http使用踩过的坑与填坑指南
2021/04/27 Golang
基于Redis实现分布式锁的方法(lua脚本版)
2021/05/12 Redis
logback 实现给变量指定默认值
2021/08/30 Java/Android
Python进程间的通信之语法学习
2022/04/11 Python