1   package com.atlassian.pageobjects.elements;
2   
3   import com.atlassian.webdriver.utils.JavaScriptUtils;
4   import org.openqa.selenium.WebDriver;
5   import org.openqa.selenium.WebElement;
6   
7   /**
8    * Executes javascript on an element
9    */
10  public class PageElementJavascriptExecutor
11  {
12      private final WebDriver driver;
13      private final WebElement element;
14  
15      /**
16       * Creates a PageElementJavascriptExecutor object for the given element
17       * @param driver The WebDriver instance
18       * @param element The WebElement to dispatch events to.
19       */
20      public PageElementJavascriptExecutor(WebDriver driver, WebElement element)
21      {
22          this.driver = driver;
23          this.element = element;
24      }
25  
26      /**
27       * Dispatches a hover event to this element
28       */
29      public void hover()
30      {
31          JavaScriptUtils.dispatchMouseEvent("mouseover", element, driver);
32      }
33  
34      /**
35       * Dispatches a click event to this element
36       */
37      public void click()
38      {
39          JavaScriptUtils.dispatchMouseEvent("click", element, driver);
40      }
41  }