// IsVisible /// <summary> /// Indicates whether the element is visible or not. /// See also https://blog.jquery.com/2009/02/20/jquery-1-3-2-released/#visible-hidden-overhauled /// </summary> /// <param name="handle">An <see cref="ElementHandle"/></param> /// <returns><c>true</c> if the element is visible</returns> public static async Task <bool> IsVisibleAsync(this ElementHandle handle) { handle.GuardFromNull(); return(await handle.EvaluateFunctionWithoutDisposeAsync <bool>("element => element.offsetWidth > 0 && element.offsetHeight > 0").ConfigureAwait(false)); }
// IsReadOnly /// <summary> /// Indicates whether the element is read-only or not. /// </summary> /// <param name="handle">An <see cref="ElementHandle"/></param> /// <remarks><![CDATA[Elements: <input>, <textarea>]]></remarks> /// <returns><c>true</c> if the element is read-only</returns> public static async Task <bool> IsReadOnlyAsync(this ElementHandle handle) { handle.GuardFromNull(); return(await handle.EvaluateFunctionWithoutDisposeAsync <bool>("element => element.readOnly").ConfigureAwait(false)); }
// HasClass /// <summary> /// Indicates whether the element has the specified class or not. /// </summary> /// <param name="handle">An <see cref="ElementHandle"/></param> /// <param name="className">The class name</param> /// <returns><c>true</c> if the element has the specified class</returns> public static async Task <bool> HasClassAsync(this ElementHandle handle, string className) { handle.GuardFromNull(); return(await handle.EvaluateFunctionWithoutDisposeAsync <bool>("(element, className) => element.classList.contains(className)", className).ConfigureAwait(false)); }
// ClassName /// <summary> /// ClassName of the element. /// See also https://developer.mozilla.org/en-US/docs/Web/API/Element/className /// </summary> /// <param name="handle">An <see cref="ElementHandle"/></param> /// <returns>The element <c>className</c></returns> public static async Task <string> ClassNameAsync(this ElementHandle handle) { handle.GuardFromNull(); return(await handle.EvaluateFunctionWithoutDisposeAsync <string>("element => element.className").ConfigureAwait(false)); }
// HasContent /// <summary> /// Indicates whether the element has the specified content or not. /// </summary> /// <param name="handle">An <see cref="ElementHandle"/></param> /// <param name="content">The content</param> /// <remarks>Evaluates <c>node.textContent</c></remarks> /// <returns><c>true</c> if the element has the specified content</returns> public static async Task <bool> HasContentAsync(this ElementHandle handle, string content) { handle.GuardFromNull(); return(await handle.EvaluateFunctionWithoutDisposeAsync <bool>("(node, content) => node.textContent.includes(content)", content).ConfigureAwait(false)); }
/// <summary> /// The value of a specified attribute on the element. /// </summary> /// <param name="elementHandle">An <see cref="ElementHandle"/></param> /// <param name="name">The attribute name</param> /// <returns>The attribute value</returns> /// <seealso href="https://developer.mozilla.org/en-US/docs/Web/API/Element/getAttribute"/> public static async Task <string> GetAttributeAsync(this ElementHandle elementHandle, string name) { return(await elementHandle.EvaluateFunctionWithoutDisposeAsync <string>("(element, name) => element.getAttribute(name)", name).ConfigureAwait(false)); }
// HasAttribute /// <summary> /// Indicates whether the element has the specified attribute or not. /// See also https://developer.mozilla.org/en-US/docs/Web/API/Element/hasAttribute /// </summary> /// <param name="handle">An <see cref="ElementHandle"/></param> /// <param name="name">The attribute name</param> /// <returns><c>true</c> if the element has the specified attribute</returns> public static async Task <bool> HasAttributeAsync(this ElementHandle handle, string name) { handle.GuardFromNull(); return(await handle.EvaluateFunctionWithoutDisposeAsync <bool>("(element, name) => element.hasAttribute(name)", name).ConfigureAwait(false)); }