Skip to content

Instantly share code, notes, and snippets.

@SarahElson
SarahElson / ShadowRootTests.java
Created April 22, 2024 07:32
How to Handle Shadow Root in Selenium Java
@Test
public void testEditMenuShadowRootElement() {
getDriver().get("https://www.htmlelements.com/demos/menu/shadow-dom/index.htm");
final HomePage homePage = new HomePage();
assertEquals(homePage.getEditMenuText(), "Edit");
}
@SarahElson
SarahElson / HomePage.java
Created April 22, 2024 07:29
How to Handle Shadow Root in Selenium Java
public SearchContext expandRootElement(final WebElement element) {
return (SearchContext) ((JavascriptExecutor) getDriver()).executeScript(
"return arguments[0].shadowRoot", element);
}
@SarahElson
SarahElson / ShadowRootTests.java
Created April 22, 2024 07:24
How to Handle Shadow Root in Selenium Java
@Test
public void testNewMenuShadowRootElement() {
getDriver().get("https://www.htmlelements.com/demos/menu/shadow-dom/index.htm");
final HomePage homePage = new HomePage();
assertEquals(homePage.getNewMenuText(), "New");
}
@SarahElson
SarahElson / HomePage.java
Created April 22, 2024 07:23
How to Handle Shadow Root in Selenium Java
public String getNewMenuText() {
openFileMenu();
return fileMenu().findElement(By.cssSelector(".smart-menu-drop-down div smart-menu-item.smart-element"))
.getAttribute("label");
}
@SarahElson
SarahElson / ShadowRootTests.java
Created April 22, 2024 07:20
How to Handle Shadow Root in Selenium Java
@Test
public void testFileMenuShadowRootElement() {
getDriver().get("https://www.htmlelements.com/demos/menu/shadow-dom/index.htm");
final HomePage homePage = new HomePage();
assertEquals(homePage.getFileMenuText(), "File");
}
@SarahElson
SarahElson / HomePage.java
Created April 22, 2024 07:15
How to Handle Shadow Root in Selenium Java
public WebElement fileMenu() {
final WebElement shadowHost = getDriver().findElement(By.cssSelector(".smart-ui-component"));
final SearchContext shadowRoot = shadowHost.getShadowRoot();
return shadowRoot.findElement(By.cssSelector(".smart-element .smart-menu-main-container .smart-element"));
}
@SarahElson
SarahElson / pom.xml
Created April 12, 2024 07:26
How To Perform React Native Testing Using Appium
<dependencies>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng-version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.Appium/java-client -->
<dependency>
@SarahElson
SarahElson / BaseTest.java (Android)
Created April 12, 2024 06:52
How To Perform React Native Testing Using Appium
public class BaseTest {
protected AndroidDriverManager androidDriverManager;
@Parameters({"buildName", "testName", "app", "platformName", "platformVersion", "deviceName"})
@BeforeClass
public void setupTest(final String buildName, final String testName, @Optional("app") final String app, final String platformName, final String platformVersion,
final String deviceName) {
this.androidDriverManager = AndroidDriverManager.builder()
@SarahElson
SarahElson / pom.xml (Properties Block)
Created April 12, 2024 06:40
How To Perform React Native Testing Using Appium
<properties>
<testng-version>9.2.2</testng-version>
<Appium-java-client-version>7.9.0</Appium-java-client-version>
<lombok-version>1.18.32</lombok-version>
</properties>
<dependencies>
<!-- https://mvnrepository.com/artifact/org.testng/testng -->
<dependency>
<groupId>org.testng</groupId>
<artifactId>testng</artifactId>
<version>${testng-version}</version>
<scope>test</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/io.Appium/java-client -->
<dependency>