selenium处理元素定位点击无效问题
在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+selenium 定位到元素,无法点击的解决方法
报错 selenium.common.exceptions.WebDriverException: Message: Element is not clickable at point (234.75, 22). Other element would receive the click: <img class="logo" src="/public/desktop/common/img/game_logo.png"> 需要点击的按钮页面显示不了,需要下
-
selenium处理元素定位点击无效问题
在WEB自动化测试过程中,经常会遇到这样的问题: 元素定位到了,但是点击无效?有人可能会问了,怎么判断元素定位到了,这个问题很好判断 1.给元素加高亮显示 self.driver.execute_script( "arguments[0].setAttribute('style', arguments[1]);", element, "border: 2px solid red;" #边框border:2px; red红色 ) arguments[0] 这个参数,可
-
python+Selenium自动化测试——输入,点击操作
这是我的第一个真正意思上的自动化脚本. 1.练习的测试用例为: 打开百度首页,搜索"胡歌",然后检索列表,有无"胡歌的新浪微博"这个链接 2.在写脚本之前,需要明确测试的步骤,具体到每个步骤需要做什么,既拆分测试场景,考虑好之后,再去写脚本. 此测试场景拆分如下: 1)启动Chrome浏览器 2)打开百度首页,https://www.baidu.com 3)定位搜索输入框,输入框元素XPath表达式://*[@id="kw"] 4)定位搜索提交按
-
listview点击无效的处理方法(推荐)
android的listview,当item里面有可点击的元素,比如说checkbox,焦点就会给了checkbox,点击item就无效了. 解决方法是在item的xml里面,最外层,添加: android:descendantFocusability="blocksDescendants" 就可以了. 以上这篇listview点击无效的处理方法(推荐)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们.
-
android点击无效验证的解决方法
背景 在写一个东西滑动删除列表的时候,出现了一个问题.我的需求是,左滑然后出现delete,然后点击delete,让该滑块消失. 我在点列表的第一行的时候,左滑,出现delete,点击删除,ok的,完美.然后我点击第三个,同样左滑出现delete,点击delete没有任何反应. 然后我再点击第一个,又可以删除. 模型如下: 子模型: ps: 黑色的是最外层,蓝色的是在黑块中,然后delete区域在滑块区.滑动是控制蓝色区域的移动. 如果仅仅是这样,我一点也不慌.出现了一些东西,更加我让疑惑.de
-
Python爬虫之Selenium设置元素等待的方法
一.显式等待 WebDriverWait类是由WebDirver 提供的等待方法.在设置时间内,默认每隔一段时间检测一次当前页面元素是否存在,如果超过设置时间检测不到则抛出异常(TimeoutException) from selenium import webdriver from selenium.webdriver.common.by import By from selenium.webdriver.support.ui import WebDriverWait from seleniu
-
Selenium Webdriver元素定位的八种常用方式(小结)
在使用selenium webdriver进行元素定位时,通常使用findElement或findElements方法结合By类返回的元素句柄来定位元素.其中By类的常用定位方式共八种,现分别介绍如下. 1. By.name() 假设我们要测试的页面源码如下: <button id="gbqfba" aria-label="Google Search" name="btnK" class="gbqfba"><
-
Python selenium模拟网页点击爬虫交管12123违章数据
在上一篇文章<Python教程-模拟网页点击爬虫定位系统>讲解怎么通过模拟点击方式爬取车辆定位数据,本次介绍怎么以模拟点击方式进入交管12123爬取车辆违章数据,本文直接讲解过程,使用的命令解释见上一篇文章.本文同<Python教程-模拟网页点击爬虫定位系统>同样为企业中实际的爬虫案例,如果之后想进入车企行业可以做个了解. 准备工具:spyder.selenium库.google浏览器及对应版本的chromedriver.exe 效果 注:分享此案例目的是为了帮助同行解放双手,更好
-
python Selenium等待元素出现的具体方法
有一个 Selenium 脚本(Python),它点击回复按钮使anonemail类出现.anonemail 类出现的时间各不相同.因此,我必须使用 sleep 直到元素出现. 我想等到课程出现而不是使用睡眠.我听说过等待命令,但我不知道如何使用它们. 这是我迄今为止所拥有的: browser.find_element_by_css_selector(".reply-button").click() sleep(5) email=browser.find_element_by_css_
-
详解Selenium中元素定位方式
目录 八大元素定位方式 通过元素 id 定位 通过元素 name 定位 通过元素 class name 定位 通过 link text 与 partial link text 定位 通过 css selector 选择器定位 通过 Xpath 定位 通过 tag_name 定位 测试对象的定位和操作是我们利用 selenium 编写自动化脚本和 webdriver 的核心内容,其中 “操作” 这一部分又是建立在 “selenium” 元素定位的基础之上的.所以对元素对象的定位就显得越发的重要,接
-
Android 中ListView setOnItemClickListener点击无效原因分析
前言 最近在做项目的过程中,在使用listview的时候遇到了设置item监听事件的时候在没有回调onItemClick 方法的问题.我的情况是在item中有一个Button按钮.所以不会回调.上百度找到了解决办法有两种,如下: 1.在checkbox.button对应的view处加android:focusable="false" 复制代码 代码如下: android:clickable="false" android:focusableInTouchMode=&
随机推荐
- iOS开发支付宝支付成功返回字符串的处理操作
- Golang学习笔记(五):函数
- jquery 简单的图片展示效果
- ExtJs的Date格式字符代码
- iOS中UIActivityIndicatorView的用法及齿轮等待动画实例
- 在C#中生成与PHP一样的MD5 Hash Code的方法
- asp.net列出某文件夹下的所有文档,包括子目录下的档案
- php Smarty模板生成html文档的方法
- php数组函数序列之each() - 获取数组当前内部指针所指向元素的键名和键值,并将指针移到下一位
- fleaphp crud操作之findByField函数的使用方法
- 用PHP编写PDF文档生成器
- Go语言中struct的匿名属性特征实例分析
- MySQL中批量删除指定前缀表的sql语句
- JSP实现的简单分页示例
- 全面解析Java8观察者模式
- VBS教程:方法-WriteBlankLines 方法
- 将VBS或ASP中的代码转成一句话形式
- Eclipse 开发java 出现Failed to create the Java Virtual Machine错误解决办法
- 可读可执行的C语言简历源文件
- jquery Mobile入门—外部链接切换示例代码