Ejemplo n.º 1
0
        /// <summary>
        ///     Execute JavaScript code in browser replacing all occurrences of <c>{self}</c> with actual
        ///     DOM element being pointed to by current web element and convert result to specific type.
        /// </summary>
        /// <param name="element">Target element</param>
        /// <param name="jsSnippet">JavaScript snippet to execute in browser</param>
        /// <param name="arguments">Arguments passed to JavaScript snippet</param>
        /// <returns>Result of the script execution or default value for a given type</returns>
        public static TReturn ExecuteScriptOnSelf <TReturn>(this IHtmlElement element, IWebDriver driver, String jsSnippet, params Object[] arguments)
        {
            var result = element.ExecuteScriptOnSelf(driver, jsSnippet, arguments);

            if (result is TReturn)
            {
                return((TReturn)result);
            }

            return(default(TReturn));
        }
Ejemplo n.º 2
0
 /// <summary>
 ///     Checks weather property exist in given DOM element object
 /// </summary>
 /// <param name="element">Target element</param>
 /// <param name="propertyName">Property name</param>
 /// <returns>
 ///     <c>true</c> if property with a given name exist and <c>false</c> otherwise
 /// </returns>
 public static bool HasProperty(this IHtmlElement element, IWebDriver driver, String propertyName)
 {
     return(element.ExecuteScriptOnSelf <Boolean>(driver, "return !!{self}[arguments[0]];"));
 }
Ejemplo n.º 3
0
 /// <summary>
 ///     Remove DOM element attribute
 /// </summary>
 /// <param name="element">Target element</param>
 /// <param name="attributeName">Attribute name</param>
 public static void RemoveAttribute(this IHtmlElement element, IWebDriver driver, String attributeName)
 {
     element.ExecuteScriptOnSelf(driver, "{self}.removeAttribute(arguments[0]);", attributeName);
 }
Ejemplo n.º 4
0
 /// <summary>
 ///     Set DOM element attribute value
 /// </summary>
 /// <param name="element">Target element</param>
 /// <param name="attributeName">Attribute name</param>
 /// <param name="attributeValue">Attribute value</param>
 public static void SetAttribute(this IHtmlElement element, IWebDriver driver, String attributeName, String attributeValue)
 {
     element.ExecuteScriptOnSelf(driver, "{self}.setAttribute(arguments[0], arguments[1]);", attributeName, attributeValue);
 }
Ejemplo n.º 5
0
 /// <summary>
 ///     Checks attribute exists in DOM element
 /// </summary>
 /// <param name="element">Target element</param>
 /// <param name="attributeName">Attribute name</param>
 /// <returns>
 ///     <c>true</c> if attribute exists and <c>false</c> otherwise
 /// </returns>
 public static bool HasAttribute(this IHtmlElement element, IWebDriver driver, string attributeName)
 {
     return(element.ExecuteScriptOnSelf <Boolean?>(driver,
                                                   "return {self}.hasAttribute(arguments[0]);", attributeName
                                                   ).GetValueOrDefault(false));
 }
Ejemplo n.º 6
0
 /// <summary>
 ///     Get value of a given DOM element property
 /// </summary>
 /// <param name="element">Target element</param>
 /// <param name="propertyName">Property name</param>
 /// <returns>Value of the property</returns>
 public static T GetProperty <T>(this IHtmlElement element, IWebDriver driver, String propertyName)
 {
     return((T)element.ExecuteScriptOnSelf(driver, "return {self}[arguments[0]];", propertyName));
 }
Ejemplo n.º 7
0
 /// <summary>
 ///     Set property value for given DOM element object
 /// </summary>
 /// <param name="element"></param>
 /// <param name="propertyName"></param>
 /// <param name="propertyValue"></param>
 public static void SetPropery(this IHtmlElement element, IWebDriver driver, String propertyName, Object propertyValue)
 {
     element.ExecuteScriptOnSelf(driver, "{self}[arguments[0]] = arguments[1];", propertyName, propertyValue);
 }