Skip to content

On top of Selenium (web browser automation tool) for providing component-based abstraction of Html DOM with interaction APIs for automating the web pages built by modern front-end frameworks such as Material UI.

License

Notifications You must be signed in to change notification settings

grossopa/hamster-selenium

Repository files navigation

Hamster Selenium

Quality Gate Status Coverage Code Smells Lines of Code

On top of Selenium (web browser automation tool) for providing component-based abstraction of Html DOM with interaction APIs for automating the web pages built by modern front-end frameworks such as Material UI.

It depends on selenium-java 4.6.0 and JDK 11. please visit https://github.com/SeleniumHQ/selenium to understand how to use Selenium.

Material UI (React)

Most of the commonly used components have been implemented in hamster-selenium-component-materialui module.

All the supported MUI components could be found in MuiComponents class. They have been tested against the examples in the Material UI official page:

Version 4: https://v4.mui.com

Version 5: https://mui.com

Check hamster-selenium-examples module for the sample code and https://github.com/grossopa/hamster-selenium/wiki/Supported-Material-UI-Components for supported Material UI components.

Material UI (Angular)

The framework also supports the Angular version of Material UI.

How to Use

Plain HTML:

<dependency>
  <groupId>com.github.grossopa</groupId>
  <artifactId>hamster-selenium-component-html</artifactId>
  <version>1.11.0</version>
</dependency>

Material UI (React):

<dependency>
  <groupId>com.github.grossopa</groupId>
  <artifactId>hamster-selenium-component-materialui</artifactId>
  <version>1.11.0</version>
</dependency>

Material UI (Angular):

<dependency>
  <groupId>com.github.grossopa</groupId>
  <artifactId>hamster-selenium-component-mats</artifactId>
  <version>1.11.0</version>
</dependency>

Create a ComponentWebDriver from existing WebDriver:

ComponentWebDriver driver = new DefaultComponentWebDriver(webDriver);

Locate the element root by class name (e.g. class="MuiSelect-root") or other indicators and convert them by using as(mui()) and toSelect or other methods.

WebComponent component = driver.findComponent(By.className("MuiSelect-root"));
MuiSelect select = component.as(MuiComponents.mui()).toSelect(By.className("MuiMenuItem-root"));`

License

https://mit-license.org/

About

On top of Selenium (web browser automation tool) for providing component-based abstraction of Html DOM with interaction APIs for automating the web pages built by modern front-end frameworks such as Material UI.

Topics

Resources

License

Code of conduct

Stars

Watchers

Forks

Packages

No packages published

Languages