Title: | Selenium Plugin to Manage Multi Level Shadow Elements on Web Page |
---|---|
Description: | Shadow Document Object Model is a web standard that offers component style and markup encapsulation. It is a critically important piece of the Web Components story as it ensures that a component will work in any environment even if other CSS or JavaScript is at play on the page. Custom HTML tags can't be directly identified with selenium tools, because Selenium doesn't provide any way to deal with shadow elements. Using this plugin you can handle any custom HTML tags. |
Authors: | Ricardo Landolt [cre, aut], Sushil Gupta [ctb] (shadow-automation-selenium plugin) |
Maintainer: | Ricardo Landolt <[email protected]> |
License: | Apache License 2.0 |
Version: | 0.0.2 |
Built: | 2025-02-06 03:10:08 UTC |
Source: | https://github.com/ricilandolt/shadowr |
This is a Class Constructor function to create a shadow class and are able to use the Selenium plugin to manage multiple levels of shadow elements on a web page.
shadow(driver)
shadow(driver)
driver |
The shadow class takes a R Selenium Remote Driver |
shadow-class
or
https://github.com/ricilandolt/shadowr for examples
Selenium plugin to manage multiple levels of shadow elements on web page. Returning a RSelenium::WebElement
which you can access like you used to.
find_element(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,missing' find_element(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,webElement' find_element(shadowObject, css_selector, element) find_elements(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,missing' find_elements(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,webElement' find_elements(shadowObject, css_selector, element) get_shadow_element(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,webElement' get_shadow_element(shadowObject, css_selector, element) get_all_shadow_element(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,webElement' get_all_shadow_element(shadowObject, css_selector, element) get_parent_element(shadowObject, element) ## S4 method for signature 'shadow,webElement' get_parent_element(shadowObject, element) get_sibling_element(shadowObject, element, css_selector) ## S4 method for signature 'shadow,webElement,character' get_sibling_element(shadowObject, element, css_selector) get_previous_sibling_element(shadowObject, element) ## S4 method for signature 'shadow,webElement' get_previous_sibling_element(shadowObject, element) get_next_sibling_element(shadowObject, element) ## S4 method for signature 'shadow,webElement' get_next_sibling_element(shadowObject, element) scroll_to(shadowObject, element) ## S4 method for signature 'shadow,webElement' scroll_to(shadowObject, element) is_checked(shadowObject, element) ## S4 method for signature 'shadow,webElement' is_checked(shadowObject, element) is_disabled(shadowObject, element) ## S4 method for signature 'shadow,webElement' is_disabled(shadowObject, element) is_visible(shadowObject, element) ## S4 method for signature 'shadow,webElement' is_visible(shadowObject, element)
find_element(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,missing' find_element(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,webElement' find_element(shadowObject, css_selector, element) find_elements(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,missing' find_elements(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,webElement' find_elements(shadowObject, css_selector, element) get_shadow_element(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,webElement' get_shadow_element(shadowObject, css_selector, element) get_all_shadow_element(shadowObject, css_selector, element) ## S4 method for signature 'shadow,character,webElement' get_all_shadow_element(shadowObject, css_selector, element) get_parent_element(shadowObject, element) ## S4 method for signature 'shadow,webElement' get_parent_element(shadowObject, element) get_sibling_element(shadowObject, element, css_selector) ## S4 method for signature 'shadow,webElement,character' get_sibling_element(shadowObject, element, css_selector) get_previous_sibling_element(shadowObject, element) ## S4 method for signature 'shadow,webElement' get_previous_sibling_element(shadowObject, element) get_next_sibling_element(shadowObject, element) ## S4 method for signature 'shadow,webElement' get_next_sibling_element(shadowObject, element) scroll_to(shadowObject, element) ## S4 method for signature 'shadow,webElement' scroll_to(shadowObject, element) is_checked(shadowObject, element) ## S4 method for signature 'shadow,webElement' is_checked(shadowObject, element) is_disabled(shadowObject, element) ## S4 method for signature 'shadow,webElement' is_disabled(shadowObject, element) is_visible(shadowObject, element) ## S4 method for signature 'shadow,webElement' is_visible(shadowObject, element)
shadowObject |
the shadow class |
css_selector |
selector string to find a web element |
element |
a web element |
Depends on the method, either a RSelenium::WebElement
or a boolean
.
find_element,shadow,character,missing-method
: Use this method if want single element
find_element,shadow,character,webElement-method
: Use this if you want to find a single elements from parent object
find_elements,shadow,character,missing-method
: Use this if you want to find all elements
find_elements,shadow,character,webElement-method
: Use this if you want to find all elements from parent object
get_shadow_element,shadow,character,webElement-method
: Use this if you want to find a single element from parent
get_all_shadow_element,shadow,character,webElement-method
: Use this if you want to find all elements from parent
get_parent_element,shadow,webElement-method
: Use this to get the parent element if web element
get_sibling_element,shadow,webElement,character-method
: Use this to get adjacent(sibling) element
get_previous_sibling_element,shadow,webElement-method
: Use this to get previous adjacent(sibling) element
get_next_sibling_element,shadow,webElement-method
: Use this to get next adjacent(sibling) element
scroll_to,shadow,webElement-method
: Use this to scroll to web element
is_checked,shadow,webElement-method
: Use this if you want to check if checkbox is selected
is_disabled,shadow,webElement-method
: Use this if you want to check if element is disabled
is_visible,shadow,webElement-method
: Use this if you want to find visibility of element
driver
The shadow class takes a Remote Driver
javascript_library
the selenium plugin
https://github.com/ricilandolt/shadowr for examples
## Not run: library(shadowr) library(RSelenium) remDr <- RSelenium::remoteDriver( remoteServerAddr = "host.docker.internal", port = 4445 , browser = "chrome") remDr$open(silent = TRUE) remDr$navigate(url) shadow_rd <- shadow(remDr) element <- find_element(shadow_rd, 'paper-tab[title="Settings"]') elements <- find_elements(shadow_rd, 'paper-tab[title="Settings"]') element$getElementText() library(shadowr) library(RSelenium) remDr <- RSelenium::remoteDriver( remoteServerAddr = "host.docker.internal", port = 4445 , browser = "chrome") remDr$open(silent = TRUE) remDr$navigate(url) shadow_rd <- shadow(remDr) element <- find_element(shadow_rd, 'input[title="The name of the employee"]') elements <- find_elements(shadow_rd, 'input[title="The name of the employee"]') element$getElementText() library(shadowr) library(RSelenium) remDr <- RSelenium::remoteDriver( remoteServerAddr = "host.docker.internal", port = 4445 , browser = "chrome") remDr$open(silent = TRUE) remDr$navigate(url) shadow_rd <- shadow(remDr) element <- find_element(shadow_rd, "properties-page#settingsPage>textarea#textarea") element$getElementText() ## End(Not run)
## Not run: library(shadowr) library(RSelenium) remDr <- RSelenium::remoteDriver( remoteServerAddr = "host.docker.internal", port = 4445 , browser = "chrome") remDr$open(silent = TRUE) remDr$navigate(url) shadow_rd <- shadow(remDr) element <- find_element(shadow_rd, 'paper-tab[title="Settings"]') elements <- find_elements(shadow_rd, 'paper-tab[title="Settings"]') element$getElementText() library(shadowr) library(RSelenium) remDr <- RSelenium::remoteDriver( remoteServerAddr = "host.docker.internal", port = 4445 , browser = "chrome") remDr$open(silent = TRUE) remDr$navigate(url) shadow_rd <- shadow(remDr) element <- find_element(shadow_rd, 'input[title="The name of the employee"]') elements <- find_elements(shadow_rd, 'input[title="The name of the employee"]') element$getElementText() library(shadowr) library(RSelenium) remDr <- RSelenium::remoteDriver( remoteServerAddr = "host.docker.internal", port = 4445 , browser = "chrome") remDr$open(silent = TRUE) remDr$navigate(url) shadow_rd <- shadow(remDr) element <- find_element(shadow_rd, "properties-page#settingsPage>textarea#textarea") element$getElementText() ## End(Not run)