[selenium]点击元素出现的obscure问题
前言
我们一般使用如下方式点击元素:
elem = driver.find_element(...)
elem.click()
# 或者使用带等待条件的方式
elem = WebDriverWait(driver, 10).until(EC.xxx(...))
elem.click()
正常情况下,这样去做是没问题的,但某些情况下可能会有报错:
selenium.common.exceptions.ElementClickInterceptedException: Message: Element ...... is not clickable at point (xxx,yyy) because another element ...... obscures it
步骤
方式1,等待obscure元素消失。可以使用time.sleep(),或者使用等待条件EC.invisibility_of_element_located,实在没法解决的情况下可以尝试。
方式2,通过js脚本去点击。推荐。
elem = WebDriverWait(driver, 10).until(EC.xxx(...))
driver.executescript('arguments[0].click()', elem)
这种方式在大部分情况下都行得通,某些情况下会出现报错:
selenium.common.exceptions.JavascriptException: Message: TypeError: arguments[0].click is not a function
这就需要改为:
elem = WebDriverWait(driver, 10).until(EC.xxx(...))
driver.execute_script('arguments[0].scrollIntoView();', elem)
elem.click()
或者正常情况下用arguments[0].click,异常了再使用arguments[0].scrollIntoView
elem = WebDriverWait(driver, 10).until(EC.xxx(...))
try:
	driver.executescript('arguments[0].click()', elem)
except selenium.common.exceptions.JavascriptException:
	driver.execute_script('arguments[0].scrollIntoView();', elem)
	elem.click()
												
											[selenium]点击元素出现的obscure问题的更多相关文章
- selenium+java二元素定位
		
页面元素定位是自动化中最重要的事情, selenium Webdriver 提供了很多种元素定位的方法. 测试人员应该熟练掌握各种定位方法. 使用最简单,最稳定的定位方法. 自动化测试步骤 定位元素 ...
 - selenium自动化之元素定位方法
		
在使用selenium webdriver进行元素定位时,有8种基本元素定位方法(注意:并非只有8种,总共来说,有16种). 分别介绍如下: 1.name定位 (注意:必须确保name属性值在当前ht ...
 - selenium中的元素操作之下拉列表操作(四)
		
下拉列表操作中分为两种:select.非select 1.非select的下拉框操作 非select下拉列表操作与网页元素操作一致,找到元素,定位元素,设置等待,点击元素等等 接下来操作百度的设置按钮 ...
 - selenium python bindings 元素定位
		
1. 辅助 Firepath Firefox是所有做前端的必不可少的浏览器因为firebug的页面元素显示很清晰.用selenium 去定位元素的时候Firefox还有一个非常友好的工具就是firep ...
 - Python3-Selenium自动化测试框架(二)之selenium使用和元素定位
		
Selenium自动化测试框架(二)之selenium使用和元素定位 (一)selenium的简单使用 1.导包 from selenium import webdriver 2.初始化浏览器 # 驱 ...
 - 《手把手教你》系列技巧篇(四十八)-java+ selenium自动化测试-判断元素是否可操作(详解教程)
		
1.简介 webdriver有三种判断元素状态的方法,分别是isEnabled,isSelected 和 isDisplayed,其中isSelected在前面的内容中已经简单的介绍了,isSelec ...
 - 移动web在ios和android下点击元素出现阴影问题
		
移动web开发经验总结 1.-webkit-tap-highlight-color:rgba(255,255,255,0)可以同时屏蔽ios和android下点击元素时出现的阴影.备注:transp ...
 - 同时屏蔽ios和android下点击元素时出现的阴影
		
在ios4+和android2+系统,当手指触摸屏幕a标签链接或按钮时,会产生不同的效果,对于ios点击元素的时候,就会出现一个半透明的灰色背景:对于android则出现红色的边框.对这2个系统自带的 ...
 - Web测试Selenium:如何选取元素
		
Web测试工具Selenium:如何选取元素 2009-02-17 23:23 by 敏捷的水, 5372 阅读, 22 评论, 收藏, 编辑 selenium是一个非常棒的Web测试工具,他对Aja ...
 - vue 点击当前元素添加class 去掉兄弟的class  获取当前点击元素的文字
		
点击当前标签给其添加class,兄弟标签class删除 然后获取当前点击元素的文字 演示地址: https://xibushijie.github.io/static/addClass.html &l ...
 
随机推荐
- Unity快速接入bugly, 支持Unity2021
			
鹅厂提供的bugly官方demo工程打包后台也查不到日志,N年不更新(官方已经说不再维护),为此本人做了部分修改测试,提供一个快速接入工程的demo. Unity2021因为版本原因腾讯官方工程不能使 ...
 - Axure 手机页面拖动效果
			
1.设置好上下固定们,中间放一个动态面板,如下图所示,(刚开始创建是没有图片的) 2.再状态1下再创建一个动态面板 命名为D2,如下图所示 3.在D2的状态1下新建一个宽370(大概手机宽)高1100 ...
 - 2021-06-13:如果一个节点X,它左树结构和右树结构完全一样,那么我们说以X为头的树是相等树。给定一棵二叉树的头节点head,返回head整棵树上有多少棵相等子树。
			
2021-06-13:如果一个节点X,它左树结构和右树结构完全一样,那么我们说以X为头的树是相等树.给定一棵二叉树的头节点head,返回head整棵树上有多少棵相等子树. 福大大 答案2021-06- ...
 - L1-025 正整数A+B (15 分)
			
1.题目描述: 题的目标很简单,就是求两个正整数A和B的和,其中A和B都在区间[1,1000].稍微有点麻烦的是,输入并不保证是两个正整数. 输入格式: 输入在一行给出A和B,其间以空格分开.问题是A ...
 - 通过nc获取靶机的反弹Shell [靶机实战]
			
1.环境 Kali:172.30.1.3/24 靶机(Funbox9):172.30.1.129/24 2.信息收集 通过nmap扫描此主机,我们需要获取到开放的端口以及服务的Banner 1 nma ...
 - Outlook无法启动一直显示“正在启动”的解决方法
			
缘起 今天早上打开电脑以后,就打开Outlook2016了,一直显示这个界面: 我没在意就干别的事了, 可以半个小时过去了,还是这个界面,我慌了. 解决方法 安全模式打开Outlook 按WIN + ...
 - RT_object
			
以下图片来自"张世争"的微博
 - OpenSSL 是什么?
			
OpenSSL 是什么? OpenSSL 是开源的程序套件,该套件由三部分组成: libcrypto:具有通用功能的加密库,里面包含众多加密算法 libssl:实现 SSL/TLS 功能 openss ...
 - 使用Git进行代码版本控制和协作:代码共享、协作和版本管理
			
目录 1. 引言 2. 技术原理及概念 3. 实现步骤与流程 使用 Git 进行代码版本控制和协作:代码共享.协作和版本管理 Git 是一个开源的分布式版本控制系统,由 Linux 内核开发组创建.G ...
 - 记录一个在写项目中遇到的Maven依赖无法导入的问题
			
记录一个在写项目中遇到的Maven依赖无法导入的问题 项目是一个父项目做依赖管理,三个子项目,今天遇到一个问题: 子项目中导入的依赖,怎么都导入不进去,maven仓库中已经有了,idea提示也没有问题 ...