Skip to content

Commit

Permalink
[TeasyElement] added method getElementData() to the interface and its…
Browse files Browse the repository at this point in the history
… realizations
  • Loading branch information
dstepkin-wiley committed Apr 11, 2019
1 parent b061fda commit 4a1bfd8
Show file tree
Hide file tree
Showing 3 changed files with 19 additions and 5 deletions.
7 changes: 7 additions & 0 deletions src/main/java/com/wiley/elements/TeasyElement.java
Expand Up @@ -54,6 +54,13 @@ public interface TeasyElement extends WebElement {
*/
Locatable getLocatable();

/**
* Gets data used for element creation (e.g. search context, locator)
*
* @return - {@link TeasyElementData}
*/
TeasyElementData getElementData();

/**
* {@link #should(SearchStrategy)} with default {@link SearchStrategy}
*/
Expand Down
7 changes: 7 additions & 0 deletions src/main/java/com/wiley/elements/types/BaseTeasyElement.java
Expand Up @@ -32,6 +32,7 @@
*/
public abstract class BaseTeasyElement implements TeasyElement, org.openqa.selenium.interactions.Locatable {

private TeasyElementData elementData;
private WebElement wrappedElement;
private Locatable locatable;
private int repeatLocateElementCounter;
Expand All @@ -41,6 +42,7 @@ public abstract class BaseTeasyElement implements TeasyElement, org.openqa.selen
private static final int MAX_NUMBER_OF_REPEAT_LOCATE_ELEMENT = 20;

BaseTeasyElement(TeasyElementData elementData) {
this.elementData = elementData;
this.locatable = new LocatableFactory(elementData, getDriver()).get();
this.repeatLocateElementCounter = 0;
this.wrappedElement = getWrappedElement(elementData);
Expand Down Expand Up @@ -369,6 +371,11 @@ public Locatable getLocatable() {
return locatable;
}

@Override
public TeasyElementData getElementData() {
return elementData;
}

@Override
public <X> X getScreenshotAs(OutputType<X> target) {
if (getDriver().getClass() == RemoteWebDriver.class) {
Expand Down
10 changes: 5 additions & 5 deletions src/main/java/com/wiley/elements/types/NullTeasyElement.java
Expand Up @@ -48,11 +48,6 @@ public ElementWaitFor waitFor(SearchStrategy strategy) {
return new NullElementWaitFor(elementData, new TeasyFluentWait<>(getDriver(), strategy), strategy);
}

// this will allow to get search context and to perform a lookup of the same element if needed
public TeasyElementData getElementData() {
return elementData;
}

/*
All other methods of TeasyElement should throw an exception because it's not possible to
interact with element that does not exist
Expand Down Expand Up @@ -153,6 +148,11 @@ public Locatable getLocatable() {
return locatable;
}

@Override
public TeasyElementData getElementData() {
return elementData;
}

@Override
public TeasyElement getParent() {
throw noSuchElementException();
Expand Down

0 comments on commit 4a1bfd8

Please sign in to comment.