在调试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高亮显示定位到的元素的更多相关文章

  1. selenium的定位方法-多元素定位

    在实际工作中,有些时候定位元素使用ID.NAME.CLASS_NMAE.XPATH等方法无法定位到具体元素,会发现元素属性有很多一致的,这个时候使用单元素定位方法无法准确定位到具体元素,例如,百度首页 ...

  2. Selenium webdriver定位iframe里面元素两种方法

    以东方财富网登录页面为例: 在查找元素过程中,直接通过id或者xpath等找不到元素,查看页面源代码发现元素是属于iframe里,例如: <div class="wrap_login& ...

  3. Selenium webdriver定位iframe里面元素

    在查找元素过程中,直接通过id或者xpath等找不到元素,查看页面源代码发现元素是属于iframe里,例如: <div class="wrap_login"> < ...

  4. 转载:selenium webdriver定位不到元素的五种原因及解决办法

    1.动态id定位不到元素for example:        //WebElement xiexin_element = driver.findElement(By.id("_mail_c ...

  5. selenium webdriver定位不到元素的五种原因及解决办法

    1.动态id定位不到元素 for example:        //WebElement xiexin_element = driver.findElement(By.id("_mail_ ...

  6. [Python爬虫] 之七:selenium webdriver定位不到元素的五种原因及解决办法(转载)

    转载:http://www.51testing.com/html/87/300987-831171.html 1.动态id定位不到元素for example:        //WebElement ...

  7. py+selenium 明明定位不到元素,但却不报错或是报错AttributeError: 'list' object has no attribute 'click'【已解决】

    问题:定位不到元素,但却不报错或者出现报错AttributeError: 'list' object has no attribute 'click' 如图  或者  解决方法:   将”driver ...

  8. selenium死活定位不到元素以及radio单选框点击不生效

    今天操作一个单选框浪费太多时间,现在其实很简单得东西,记录一下: 1,问题一,定位不到 如图,使用selenium IDE和xpath helper都试过,无法成功定位到这个单选框,实际上是因为,这个 ...

  9. selenium的定位方法-单元素定位

    selenium自动化测试中,提供了单个元素定位方法,多个元素定位方法,2种方式都是根据元素属性:ID.NAME.CLASS_NAME.TAG_NAME.CSS_SELECTOR.XPATH.LINK ...

随机推荐

  1. (十五)Activitivi5之多用户任务分配

    一.概念 我们在开发的时候,有一种情况是这样的, 我们有一个任务,可以让多个用户中的任何一个人办理即可,比如某个审批任务, 张三,李四,王五他们中的任何一人办理下都行,这时候,我们用到多用户任务分配. ...

  2. (七)freemarker的基本语法及入门基础

    一.freemarker模板文件(*.ftl)的基本组成部分 1. 文本:直接输出的内容部分        2. 注释:不会输出的内容,格式为<#--  注释内容  -->         ...

  3. 查找-------(HashCode)哈希表的原理

    这段时间 在 准备软件设计师考试    目的是想复习一下  自己以前没怎么学的知识    在这个过程中  有了很大的收获  对以前不太懂得东西  在复习的过程中  有了很大程度的提高 比如在复习 程序 ...

  4. python常见函数运用【一】

    1.Python hasattr() 函数 描述hasattr() 函数用于判断对象是否包含对应的属性. 语法 hasattr 语法: hasattr(object, name)参数object -- ...

  5. 03 Django之视图函数

    一.Django的视图函数view 一个视图函数(类),简称视图,是一个简单的Python函数(类),它接受WEB请求并返回Web响应. 响应可以是一张网页的HTML内容,一个重定向,一个404错误, ...

  6. css 关于"浮动边距加倍"及其解决方法-------解决方案是在这个div里面加上display:inline;

    写div代码的时候,经常发现明明宽度算得很准确,但是莫明其妙的会和计划的布局不太一样- -|||开始以为自己代码写的有问题,拼命找bug也一无所获,最后可能会稍微修改样式来达到想要的效果,但终究也是外 ...

  7. elementui禁用树形结构全部复选框

    需求:编辑回显数据后,禁用树形结构复选框,不可选中,无复选框也不可选中 <el-tabs v-model="activeName" @tab-click="hand ...

  8. 2019年Java后端工程师常见面试题和感想

    来新公司有5个月了,从第二个月开始就参与公司后端工程师的面试工作了,包括校招在内,面试超过100个(包括40个校招的终面)应聘者了,应聘者中有超过10年的技术经理,有6年以上的高级开发,有3到5年的中 ...

  9. Struts2系列漏洞起始篇

    前言 到目前位置struts2的漏洞编号已经到了S2-057,一直想系统的学习下Struts2的漏洞,但由于工作量较大,一直搁浅.最近由于工作需要,借此机会来填下坑.个人认为一个框架漏洞出来了仅仅看下 ...

  10. XCode5环境下利用crash log调试线上Crash的流程

    1.前言 本文主要介绍在XCode5环境下,如何根据App自己生成的crashlog来调试真机上运行时产生的crash问题. 2. 步骤 (1)构造一段会crash的代码,并放到viewDidLoad ...