Selenium高亮显示定位到的元素
在调试Selenium脚本中,有时因为操作太快或操作不明显而不清楚是否定位到了正确的元素。我们可用通过执行js为定位到的元素添加样式,来高亮显示定位到的元素。
在Selenim Webdriver中,可以通过driver.exectue_scirpt() 执行JavaScript代码,执行的JavaScript代码是支持传入参数的,甚至可以传入定位到的元素,如:
exectue_script('js脚本', 参数1,参数2,参数3...),在JavaScript脚本字符串中使用arguments[n]来表示匹配第几个参数。
示例代码如下:
from selenium import webdriver
from time import sleep
STYLE = "background: green; border: 2px solid red;" # 高亮的样式
def find(driver, by, expr):
element = driver.find_element(by, expr)
driver.execute_script("arguments[0].setAttribute('style', arguments[1]);",element, STYLE)
return element
driver = webdriver.Chrome()
driver.get('https://www.baidu.com/')
find(driver, 'id', 'kw').send_keys("博客园 韩志超")
find(driver, 'id', 'su').click()
sleep(3)
driver.quit()
以上代码中,
by只定位方式,支持'id','xpath', 'name', 'class name', 'link text', 'partial link text', 'css selector', expr为元素对应的定位表达式。
driver.execute_script("arguments[0].setAttribute('style', arguments[1]);",element, STYLE)
将定位到的元素替换到arguments[0], 样式STYLE替换arguments[1],及为该元素添加高亮杨样式。
执行完结果如下图:

Selenium高亮显示定位到的元素的更多相关文章
- selenium的定位方法-多元素定位
在实际工作中,有些时候定位元素使用ID.NAME.CLASS_NMAE.XPATH等方法无法定位到具体元素,会发现元素属性有很多一致的,这个时候使用单元素定位方法无法准确定位到具体元素,例如,百度首页 ...
- Selenium webdriver定位iframe里面元素两种方法
以东方财富网登录页面为例: 在查找元素过程中,直接通过id或者xpath等找不到元素,查看页面源代码发现元素是属于iframe里,例如: <div class="wrap_login& ...
- Selenium webdriver定位iframe里面元素
在查找元素过程中,直接通过id或者xpath等找不到元素,查看页面源代码发现元素是属于iframe里,例如: <div class="wrap_login"> < ...
- 转载:selenium webdriver定位不到元素的五种原因及解决办法
1.动态id定位不到元素for example: //WebElement xiexin_element = driver.findElement(By.id("_mail_c ...
- selenium webdriver定位不到元素的五种原因及解决办法
1.动态id定位不到元素 for example: //WebElement xiexin_element = driver.findElement(By.id("_mail_ ...
- [Python爬虫] 之七:selenium webdriver定位不到元素的五种原因及解决办法(转载)
转载:http://www.51testing.com/html/87/300987-831171.html 1.动态id定位不到元素for example: //WebElement ...
- py+selenium 明明定位不到元素,但却不报错或是报错AttributeError: 'list' object has no attribute 'click'【已解决】
问题:定位不到元素,但却不报错或者出现报错AttributeError: 'list' object has no attribute 'click' 如图 或者 解决方法: 将”driver ...
- selenium死活定位不到元素以及radio单选框点击不生效
今天操作一个单选框浪费太多时间,现在其实很简单得东西,记录一下: 1,问题一,定位不到 如图,使用selenium IDE和xpath helper都试过,无法成功定位到这个单选框,实际上是因为,这个 ...
- selenium的定位方法-单元素定位
selenium自动化测试中,提供了单个元素定位方法,多个元素定位方法,2种方式都是根据元素属性:ID.NAME.CLASS_NAME.TAG_NAME.CSS_SELECTOR.XPATH.LINK ...
随机推荐
- MySQL 字段类型介绍
MySQL 基础篇 三范式 MySQL 军规 MySQL 配置 MySQL 用户管理和权限设置 MySQL 常用函数介绍 MySQL 字段类型介绍 MySQL 多列排序 MySQL 行转列 列转行 M ...
- AES密码算法详解(转自https://www.cnblogs.com/luop/p/4334160.html)
0 AES简介 我们知道数据加密标准(Data Encryption Standard: DES)的密钥长度是56比特,因此算法的理论安全强度是256.但二十世纪中后期正是计算机飞速发展的阶段,元器件 ...
- tint2
#---------------------------------------------# TINT2 CONFIG FILE#---------------------------------- ...
- VBA学习资料分享-6
从网上抓取数据到EXCEL中是VBA的一个常用之处,今天分享下VBA网抓的一些套路,主要有以下几种: 第一种:msxml2.xmlhttp/Microsoft.XMLHTTP/WinHttp.WinH ...
- Citrix ADC 12.1 / NetScaler 12
Citrix ADC 12.1 / NetScaler 12 参考 https://www.carlstalhood.com/netscaler-menu/netscaler-12/ Core – C ...
- 关于GPU的传输速度与什么有关??
1. i5-8250U 1.6GHz 2. PCIE 3 4K 105fps = 10.45Gps 4K 一帧 = 99.5Mbit 4K YUV444 + mask = 3840*2 ...
- VBA术语(三)
在本章中,将介绍常用的Excel VBA术语.这些术语将在很多的模块中使用,因此理解其中的每一个术语都很重要. 模块 模块是编写代码的区域.如下图中,这是一个新的工作簿,因此没有任何模块. 要插入模块 ...
- Lua table直接索引VS缓存索引性能测试小示例
local p = {} p.t = {} p.t.p = {} p.t.p.t = {} p.t.p.t.p = {} p.t.p.t.p.t = {} p.t.p.t.p.t.p = {} p.t ...
- 7.Redis的发布订阅
Redis消息的订阅/发布 a)是什么 进程间的一种消息通信模式:发送者(pub)发送消息,订阅者(sub)接收消息. b)命令 SUBSCRIBE订阅 PUBLISH发布 c)案例 先订阅后发布后才 ...
- 惊呆!Java程序员等级一览
凡人:买本书凑凑热闹,听得多写的少,过段时间就把老师教的都忘了.这个阶段是刷掉人最多的阶段,也是从凡人到程序员本质区别的阶段.你的日后成就在于你的习惯与态度.隔一段时间整理自己的知识体系是重中之重 ...