Skip to content

Latest commit

 

History

History
62 lines (47 loc) · 1.79 KB

FrameComponent.md

File metadata and controls

62 lines (47 loc) · 1.79 KB

| ModelTest.java | ExamplePage.java | TableComponent.java | TableRowComponent.java | FrameComponent.java | ShadowRootComponent.java |

Sample Code

FrameComponent.java
package com.nordstrom.automation.selenium.model;

import org.openqa.selenium.By;
import org.openqa.selenium.SearchContext;
import org.openqa.selenium.WebDriver;

public class FrameComponent extends Frame {
    
    public FrameComponent(By locator, ComponentContainer parent) {
        super(locator, parent);
    }
    
    public FrameComponent(By locator, int index, ComponentContainer parent) {
        super(locator, index, parent);
    }
    
    public FrameComponent(RobustWebElement element, ComponentContainer parent) {
        super(element, parent);
    }
    
    public FrameComponent(int index, ComponentContainer parent) {
        super(index, parent);
    }
    
    public FrameComponent(String nameOrId, ComponentContainer parent) {
        super(nameOrId, parent);
    }
    
    private enum Using implements ByEnum {
        HEADING(By.cssSelector("h1"));
        
        private final By locator;
        
        Using(By locator) {
            this.locator = locator;
        }

        @Override
        public By locator() {
            return locator;
        }
    }
    
    public String getPageContent() {
        return findElement(Using.HEADING).getText();
    }

    public static Object getKey(SearchContext context) {
        RobustWebElement element = (RobustWebElement) context;
        WebDriver driver = element.getWrappedDriver().switchTo().frame(element);
        Object key = driver.findElement(Using.HEADING.locator).getText();
        switchToParentFrame(element);
        return key;
    }
}