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通过字典dict判断指定键值是否存在的方法
Mar 21 Python
python中split方法用法分析
Apr 17 Python
python创建一个最简单http webserver服务器的方法
May 08 Python
Python设计模式编程中Adapter适配器模式的使用实例
Mar 02 Python
python设计模式大全
Jun 27 Python
Python实现删除文件中含“指定内容”的行示例
Jun 09 Python
Python与R语言的简要对比
Nov 14 Python
python实现输入数字的连续加减方法
Jun 22 Python
对python opencv 添加文字 cv2.putText 的各参数介绍
Dec 05 Python
如何安装并使用conda指令管理python环境
Jul 10 Python
Python爬虫工具requests-html使用解析
Apr 29 Python
浅谈Python基础之列表那些事儿
May 11 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
第二节--PHP5 的对象模型
2006/11/16 PHP
解析phpstorm + xdebug 远程断点调试
2013/06/20 PHP
PHP实现Soap通讯的方法
2014/11/03 PHP
php写app用的框架整理
2019/09/29 PHP
指定js可访问其它域名的cookie的方法
2007/09/18 Javascript
JS提交并解析后台返回的XML的代码
2008/11/03 Javascript
js 居中漂浮广告
2010/03/21 Javascript
函数式 JavaScript(一)简介
2014/07/07 Javascript
分享9点个人认为比较重要的javascript 编程技巧
2015/04/27 Javascript
谈谈JavaScript类型系统之Math
2016/01/06 Javascript
javaScript数组迭代方法详解
2016/04/14 Javascript
jQuery移动端日期(datedropper)和时间(timedropper)选择器附源码下载
2016/04/19 Javascript
JS模拟实现方法重载示例
2016/08/03 Javascript
基于Bootstrap和jQuery构建前端分页工具实例代码
2016/11/23 Javascript
JS定时器实现数值从0到10来回变化
2016/12/09 Javascript
无阻塞加载js,防止因js加载不了影响页面显示的问题
2016/12/18 Javascript
微信小程序 picker 组件详解及简单实例
2017/01/10 Javascript
微信小程序分页加载的实例代码
2017/07/11 Javascript
使用JavaScript破解web
2018/09/28 Javascript
微信小程序如何刷新当前界面的实现方法
2019/06/07 Javascript
p5.js绘制旋转的正方形
2019/10/23 Javascript
JS实现点星星消除小游戏
2020/03/24 Javascript
由Python运算π的值深入Python中科学计算的实现
2015/04/17 Python
python实现的简单FTP上传下载文件实例
2015/06/30 Python
详解Python 模拟实现生产者消费者模式的实例
2017/08/10 Python
浅谈django orm 优化
2018/08/18 Python
在Python中定义一个常量的方法
2018/11/10 Python
HTML5+CSS3实例 :canvas 模拟实现电子彩票刮刮乐代码
2016/12/30 HTML / CSS
巴西最大的家电和百货零售商:Casas Bahia
2016/11/22 全球购物
英国第一家领先的在线处方眼镜零售商:Glasses Direct
2018/02/23 全球购物
标签和贴纸印刷:Lightning Labels
2018/03/22 全球购物
介绍一下代理模式(Proxy)
2014/10/17 面试题
办公室秘书自我鉴定
2014/01/18 职场文书
厨师个人自我鉴定范文
2014/04/19 职场文书
大学生党员个人剖析材料
2014/10/08 职场文书
一篇文章带你深入了解Mysql触发器
2021/08/02 MySQL