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深入学习之内存管理
Aug 31 Python
Python中AND、OR的一个使用小技巧
Feb 18 Python
Python Django使用forms来实现评论功能
Aug 17 Python
用Python写脚本,实现完全备份和增量备份的示例
Apr 29 Python
python的time模块和datetime模块实例解析
Nov 29 Python
python 数据库查询返回list或tuple实例
May 15 Python
Python自动化操作实现图例绘制
Jul 09 Python
深入了解Python enumerate和zip
Jul 16 Python
基于selenium及python实现下拉选项定位select
Jul 22 Python
正确的理解和使用Django信号(Signals)
Apr 14 Python
Python 数据结构之十大经典排序算法一文通关
Oct 16 Python
python基础之//、/与%的区别详解
Jun 10 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
星际争霸教主Flash的ID由来:你永远不会知道他之前的ID是www!
2019/01/18 星际争霸
PHP删除数组中特定元素的两种方法
2019/02/28 PHP
JavaScript 新手24条实用建议[TUTS+]
2009/06/21 Javascript
javascript 可以拖动的DIV(二)
2009/06/26 Javascript
javascript 简练的几个函数
2009/08/29 Javascript
用jquery ajax获取网站Alexa排名的代码
2009/12/12 Javascript
对jQuery的事件绑定的一些思考(补充)
2013/04/20 Javascript
利用div+jquery自定义滚动条样式的2种方法
2013/07/18 Javascript
js使用removeChild方法动态删除div元素
2014/08/01 Javascript
jQuery遍历对象、数组、集合实例
2014/11/08 Javascript
JavaScript中的bold()方法使用详解
2015/06/08 Javascript
js判断移动端是否安装某款app的多种方法
2015/12/18 Javascript
基于zepto的移动端轻量级日期插件--date_picker
2016/03/04 Javascript
关于jQuery EasyUI 中刷新Tab选项卡后一个页面变形的解决方法
2017/03/02 Javascript
vue iview组件表格 render函数的使用方法详解
2018/03/15 Javascript
Angular6新特性之Angular Material
2018/12/28 Javascript
vue自定义指令限制输入框输入值的步骤与完整代码
2020/08/30 Javascript
python实现排序算法
2014/02/14 Python
Python 3.7新功能之dataclass装饰器详解
2018/04/21 Python
解决python3 网络请求路径包含中文的问题
2018/05/10 Python
python 同时运行多个程序的实例
2019/01/07 Python
在Python中,不用while和for循环遍历列表的实例
2019/02/20 Python
python 动态迁移solr数据过程解析
2019/09/04 Python
Python xmltodict模块安装及代码实例
2020/10/05 Python
举例详解CSS3中的Transition
2015/07/15 HTML / CSS
Oracle性能调优原则
2012/05/03 面试题
缴纳养老保险的证明
2014/01/10 职场文书
个人求职信范文
2014/05/24 职场文书
工作粗心大意检讨书
2014/09/18 职场文书
信访稳定工作汇报
2014/10/27 职场文书
幼儿园园长新年寄语2015
2014/12/08 职场文书
个园导游词
2015/02/04 职场文书
大学生团员个人总结
2015/02/14 职场文书
培养联系人考察意见
2015/06/01 职场文书
创业计划书介绍
2019/04/24 职场文书
大学迎新生的欢迎词
2019/06/25 职场文书