在调试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],及为该元素添加高亮杨样式。
执行完结果如下图:
实战案例
光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。
如果对你有帮助的话,点个赞收个藏,给作者一个鼓励。也方便你下次能够快速查找。
如有不懂还要咨询下方小卡片,博主也希望和志同道合的测试人员一起学习进步
在适当的年龄,选择适当的岗位,尽量去发挥好自己的优势。
我的自动化测试开发之路,一路走来都离不每个阶段的计划,因为自己喜欢规划和总结,文章来源:https://www.toymoban.com/news/detail-831044.html
测试开发视频教程、学习笔记领取传送门!!!文章来源地址https://www.toymoban.com/news/detail-831044.html
到了这里,关于Selenium自动化实现高亮显示定位到的元素的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!