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中基于生成器的状态机
Apr 13 Python
python实现给数组按片赋值的方法
Jul 28 Python
Python for Informatics 第11章 正则表达式(一)
Apr 21 Python
Python守护进程和脚本单例运行详解
Jan 06 Python
Python实现的多线程同步与互斥锁功能示例
Nov 30 Python
Python cookbook(数据结构与算法)从序列中移除重复项且保持元素间顺序不变的方法
Mar 13 Python
Python3正则匹配re.split,re.finditer及re.findall函数用法详解
Jun 11 Python
python求解数组中两个字符串的最小距离
Sep 27 Python
python 标准差计算的实现(std)
Jul 29 Python
PyTorch中反卷积的用法详解
Dec 30 Python
Python  word实现读取及导出代码解析
Jul 09 Python
五分钟带你搞懂python 迭代器与生成器
Aug 30 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
使用XDebug调试及单元测试覆盖率分析
2011/01/27 PHP
鼠标滑上去后图片放大浮出效果的js代码
2011/05/28 Javascript
Javascript查询DBpedia小应用实例学习
2013/03/07 Javascript
关于js注册事件的常用方法
2013/04/03 Javascript
jQuery实现类似淘宝购物车全选状态示例
2013/06/26 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
js中apply方法的使用详细解析
2013/11/04 Javascript
JS实现网页标题栏显示当前时间和日期的完整代码
2015/11/02 Javascript
详解Vue.js 2.0 如何使用axios
2017/04/21 Javascript
Javascript(es2016) import和require用法和区别详解
2017/08/11 Javascript
Angular7创建项目、组件、服务以及服务的使用
2019/02/19 Javascript
js单线程的本质 Event Loop解析
2019/10/29 Javascript
[10:54]Team Spirit vs Navi
2018/06/07 DOTA
[10:53]2018DOTA2国际邀请赛寻真——EG
2018/08/11 DOTA
[01:20:47]DOTA2-DPC中国联赛 正赛 Ehome vs Magma BO3 第一场 1月19日
2021/03/11 DOTA
Linux环境下MySQL-python安装过程分享
2015/02/02 Python
在Python中调用ggplot的三种方法
2015/04/08 Python
Python获取文件所在目录和文件名的方法
2017/01/12 Python
python 使用get_argument获取url query参数
2017/04/28 Python
Python编程实现双击更新所有已安装python模块的方法
2017/06/05 Python
简单了解Django模板的使用
2017/12/20 Python
Python3简单实现串口通信的方法
2019/06/12 Python
Python实现简单的列表冒泡排序和反转列表操作示例
2019/07/10 Python
Python实现敏感词过滤的4种方法
2020/09/12 Python
EGO Shoes美国/加拿大:英国时髦鞋类品牌
2018/08/04 全球购物
在SQL Server中创建数据库主要有那种方式
2013/09/10 面试题
2014年小学植树节活动方案
2014/03/02 职场文书
开展批评与自我批评发言材料
2014/05/15 职场文书
水污染治理工程专业求职信
2014/06/14 职场文书
学校查摆问题整改措施
2014/09/28 职场文书
个人对照检查剖析材料
2014/10/13 职场文书
四川省传达学习贯彻党的群众路线教育实践活动总结大会精神新闻稿
2014/10/26 职场文书
2014员工聘用协议书(最新版)
2014/11/24 职场文书
2015年银行柜员工作总结报告
2015/04/01 职场文书
2015年销售内勤工作总结
2015/04/27 职场文书
2015年度对口支援工作总结
2015/07/22 职场文书