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中的作用域规则和闭包
Mar 20 Python
在python带权重的列表中随机取值的方法
Jan 23 Python
Python 实现文件打包、上传与校验的方法
Feb 13 Python
python面试题小结附答案实例代码
Apr 11 Python
python导入坐标点的具体操作
May 10 Python
pyqt 实现为长内容添加滑轮 scrollArea
Jun 19 Python
解决python有时候import不了当前的包问题
Aug 28 Python
Python自动生成代码 使用tkinter图形化操作并生成代码框架
Sep 18 Python
pytorch模型存储的2种实现方法
Feb 14 Python
使用Jupyter notebooks上传文件夹或大量数据到服务器
Apr 14 Python
python制作一个简单的gui 数据库查询界面
Nov 19 Python
Python3使用Qt5来实现简易的五子棋小游戏
May 02 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开源建站平台小结
2010/04/22 PHP
PHP If Else(elsefi) 语句
2013/04/07 PHP
深入PHP nl2br()格式化输出的详解
2013/06/05 PHP
解析php中curl_multi的应用
2013/07/17 PHP
smarty模板引擎从配置文件中获取数据的方法
2015/01/22 PHP
PHP 实现代码复用的一个方法 traits新特性
2015/02/22 PHP
54个提高PHP程序运行效率的方法
2015/07/19 PHP
浅析ThinkPHP缓存之快速缓存(F方法)和动态缓存(S方法)(日常整理)
2015/10/26 PHP
基于jQuery的一个扩展form序列化到json对象
2010/12/09 Javascript
jquery使用正则表达式验证email地址的方法
2015/01/22 Javascript
Jquery中的$.each获取各种返回类型数据的使用方法
2015/05/03 Javascript
JavaScript截取指定长度字符串点击可以展开全部代码
2015/12/04 Javascript
Vue概念及常见命令介绍(1)
2016/12/08 Javascript
为JQuery EasyUI 表单组件增加焦点切换功能的方法
2017/04/13 jQuery
Vue.js中轻松解决v-for执行出错的三个方案
2017/06/09 Javascript
浅谈VUE监听窗口变化事件的问题
2018/02/24 Javascript
JS实现的JSON序列化操作简单示例
2018/07/02 Javascript
vue初始化动画加载的实例
2018/09/01 Javascript
Vue + element 实现多选框组并保存已选id集合的示例代码
2020/06/03 Javascript
Python实现的Excel文件读写类
2015/07/30 Python
Python利用matplotlib生成图片背景及图例透明的效果
2017/04/27 Python
Python学习教程之常用的内置函数大全
2017/07/14 Python
基于python批量处理dat文件及科学计算方法详解
2018/05/08 Python
如何优雅地改进Django中的模板碎片缓存详解
2018/07/04 Python
Django基础知识 URL路由系统详解
2019/07/18 Python
Python关键字及可变参数*args,**kw原理解析
2020/04/04 Python
python海龟绘图之画国旗实例代码
2020/11/11 Python
PHP面试题附答案
2015/11/28 面试题
教师实习的自我鉴定
2013/10/26 职场文书
财务分析个人的自荐书范文
2013/11/24 职场文书
心得体会范文
2014/01/04 职场文书
职业规划书如何设计?
2014/01/09 职场文书
建筑总经理岗位职责
2014/02/02 职场文书
公务员检讨书
2014/11/01 职场文书
先进典型事迹材料
2014/12/29 职场文书
python中数组和列表的简单实例
2022/03/25 Python