代码改变世界

问题(一) DebugAugmenter

2018-01-19 16:30  钱先生  阅读(209)  评论(0编辑  收藏  举报

问题: DebugAugmenter的作用是什么?是任何一个自创建的变量都可以取代它还是它有特定含义? 

 1 public class DebugAugmenter Test
 2 {    
 3      @Test
 4      public void testHighlight()
 5      {
 6          WebBrowser browser = BrowserEmulator.getBrowser();
 7          browser.open("https://www.baidu.com");
 8  
 9          DebugAugmenter debug = new DebugAugmenter();
10          debug.register(browser.getWebDriver());
11  
12          WebElement element = browser.getElement("//*@id=\"kw\"]");
13          debug.highlightElement(element);
14  
15          browser.pause(1);
16          browser.quit();
17      }
18 }

 

注: 上述代码是基于特定封装包

 

解答:

DebugAugmenter是封装的类名,

 1 public class DebugAugmenter extends BrowserAugmenter
 2 {
 3     private static final String JS_HIGHLIGHT = "element = arguments[0];" +
 4             "original_style = element.getAttribute('style');" +
 5             "element.setAttribute('style', original_style + \";" +
 6             "background: yellow; border: 2px solid red;\");" +
 7             "setTimeout(function(){element.setAttribute('style', original_style);}, 1000);";
 8 
 9     public void highlightElement(WebElement element)
10     {
11         JavascriptExecutor js = (JavascriptExecutor) browser;
12         js.executeScript(JS_HIGHLIGHT, element);
13     }
14 }