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 获得13位unix时间戳的方法
Oct 20 Python
Tensorflow 同时载入多个模型的实例讲解
Jul 27 Python
pygame游戏之旅 添加icon和bgm音效的方法
Nov 21 Python
利用Python脚本批量生成SQL语句
Mar 04 Python
解决pycharm安装第三方库失败的问题
May 09 Python
Python生成随机验证码代码实例解析
Jun 09 Python
Python闭包装饰器使用方法汇总
Jun 29 Python
PyTorch实现重写/改写Dataset并载入Dataloader
Jul 14 Python
Python+Appium实现自动化清理微信僵尸好友的方法
Feb 04 Python
Python实现简单的2048小游戏
Mar 01 Python
python实现层次聚类的方法
Nov 01 Python
Python时间操作之pytz模块使用详解
Jun 14 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与ASP
2006/10/09 PHP
php去掉字符串的最后一个字符附substr()的用法
2011/03/23 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
Laravel重写用户登录简单示例
2016/10/08 PHP
js计算页面刷新的次数
2009/07/20 Javascript
Prototype Selector对象学习
2009/07/23 Javascript
js的一些常用方法小结
2011/06/29 Javascript
为JavaScript类型增加方法的实现代码(增加功能)
2011/12/29 Javascript
js随机颜色代码的多种实现方式
2013/04/23 Javascript
js控制淡入淡出示例代码
2013/11/12 Javascript
把jQuery的类、插件封装成seajs的模块的方法
2014/03/12 Javascript
document.write的几点使用心得
2014/05/14 Javascript
js+css实现导航效果实例
2015/02/10 Javascript
jQuery实现鼠标划过修改样式的方法
2015/04/14 Javascript
JavaScript中Number.NEGATIVE_INFINITY值的使用详解
2015/06/05 Javascript
KnockoutJs快速入门教程
2016/05/16 Javascript
微信小程序之MaterialDesign--input组件详解
2017/02/15 Javascript
js断点调试经验分享
2017/12/08 Javascript
Vue ElementUi同时校验多个表单(巧用new promise)
2018/06/06 Javascript
js简单遍历获取对象中的属性值的方法示例
2019/06/19 Javascript
python使用paramiko模块实现ssh远程登陆上传文件并执行
2014/01/27 Python
Python计算程序运行时间的方法
2014/12/13 Python
Mac中Python 3环境下安装scrapy的方法教程
2017/10/26 Python
python实现学生管理系统
2018/01/11 Python
python如何压缩新文件到已有ZIP文件
2018/03/14 Python
Python cookbook(数据结构与算法)将多个映射合并为单个映射的方法
2018/04/19 Python
python的依赖管理的实现
2019/05/14 Python
python通过http下载文件的方法详解
2019/07/26 Python
python爬虫开发之PyQuery模块详细使用方法与实例全解
2020/03/09 Python
html5实现完美兼容各大浏览器的播放器
2014/12/26 HTML / CSS
ZWILLING双立人英国网上商店:德国刀具锅具厨具品牌
2018/05/15 全球购物
彪马日本官网:PUMA日本
2019/01/31 全球购物
2014年社区植树节活动方案
2014/02/28 职场文书
2014年教师节寄语
2014/08/11 职场文书
户外亲子活动总结
2015/05/08 职场文书
Github 使用python对copilot做些简单使用测试
2022/04/14 Python