如何使用Selenium-Python突出显示网页上的元素?

时间:2017-08-01 14:12:40

标签: javascript python selenium automation

我已经移交了一个使用python进行脚本编写的现有selenium框架。出于调试(和其他)目的,我想强调当前正在采取行动的元素(输入框,链接,下拉等)。

虽然我可以找到定义函数的解决方案并在需要的地方调用函数来突出显示元素(如下面给出的示例),但我需要的是框架级别的解决方案。

  1. Selenium webdriver highlight element before clicking
  2. https://seleniumwithjavapython.wordpress.com/selenium-with-python/intermediate-topics/playing-with-javascript-and-javascript-executor/highlighting-a-web-element-on-webpage/
  3. 是否可以在Python(或任何其他可以与python脚本集成的语言)的框架/脚本级别实现任何解决方案,这样我就不必显式调用这些函数。

    P.S。我刚刚开始使用Python,请原谅我,如果它简单/直接。如果有人可以指出任何现有的解决方案或者可以提供他们自己的解决方案,我们将不胜感激。

1 个答案:

答案 0 :(得分:3)

我还没有尝试过这段代码,但这应该可行。

import time

def highlight(element):
 """Highlights (blinks) a Selenium Webdriver element"""
  driver = element._parent
  def apply_style(s):
     driver.execute_script("arguments[0].setAttribute('style', arguments[1]);",element, s)
  original_style = element.get_attribute('style')
  apply_style("background: yellow; border: 2px solid red;")
  time.sleep(.3)
  apply_style(original_style)

希望这会有所帮助。感谢。

来源 - https://gist.github.com/dariodiaz/3104601