Skip to content

Commit 116d710

Browse files
committed
Changes DefaultStubWidget to implement+delegate WebElement & adds assertion in test case to verify Widgets are instances of WebElement
1 parent 7ac4131 commit 116d710

File tree

2 files changed

+82
-2
lines changed

2 files changed

+82
-2
lines changed

src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/DefaultStubWidget.java

+78-2
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,12 @@
11
package io.appium.java_client.pagefactory_tests.widget.tests;
22

33
import io.appium.java_client.pagefactory.Widget;
4-
import org.openqa.selenium.WebElement;
4+
import org.jspecify.annotations.Nullable;
5+
import org.openqa.selenium.*;
56

67
import java.util.List;
78

8-
public class DefaultStubWidget extends Widget {
9+
public class DefaultStubWidget extends Widget implements WebElement {
910
protected DefaultStubWidget(WebElement element) {
1011
super(element);
1112
}
@@ -22,4 +23,79 @@ public <T extends Widget> List<T> getSubWidgets() {
2223
public String toString() {
2324
return getWrappedElement().toString();
2425
}
26+
27+
@Override
28+
public void click() {
29+
getWrappedElement().click();
30+
}
31+
32+
@Override
33+
public void submit() {
34+
getWrappedElement().submit();
35+
}
36+
37+
@Override
38+
public void sendKeys(CharSequence... keysToSend) {
39+
getWrappedElement().sendKeys(keysToSend);
40+
}
41+
42+
@Override
43+
public void clear() {
44+
getWrappedElement().clear();
45+
}
46+
47+
@Override
48+
public String getTagName() {
49+
return getWrappedElement().getTagName();
50+
}
51+
52+
@Override
53+
public @Nullable String getAttribute(String name) {
54+
return getWrappedElement().getAttribute(name);
55+
}
56+
57+
@Override
58+
public boolean isSelected() {
59+
return getWrappedElement().isSelected();
60+
}
61+
62+
@Override
63+
public boolean isEnabled() {
64+
return getWrappedElement().isEnabled();
65+
}
66+
67+
@Override
68+
public String getText() {
69+
return getWrappedElement().getText();
70+
}
71+
72+
@Override
73+
public boolean isDisplayed() {
74+
return getWrappedElement().isDisplayed();
75+
}
76+
77+
@Override
78+
public Point getLocation() {
79+
return getWrappedElement().getLocation();
80+
}
81+
82+
@Override
83+
public Dimension getSize() {
84+
return getWrappedElement().getSize();
85+
}
86+
87+
@Override
88+
public Rectangle getRect() {
89+
return getWrappedElement().getRect();
90+
}
91+
92+
@Override
93+
public String getCssValue(String propertyName) {
94+
return getWrappedElement().getCssValue(propertyName);
95+
}
96+
97+
@Override
98+
public <X> X getScreenshotAs(OutputType<X> target) throws WebDriverException {
99+
return getWrappedElement().getScreenshotAs(target);
100+
}
25101
}

src/test/java/io/appium/java_client/pagefactory_tests/widget/tests/combined/CombinedAppTest.java

+4
Original file line numberDiff line numberDiff line change
@@ -6,10 +6,12 @@
66
import io.appium.java_client.pagefactory_tests.widget.tests.AbstractStubWebDriver;
77
import io.appium.java_client.pagefactory_tests.widget.tests.DefaultStubWidget;
88
import io.appium.java_client.pagefactory_tests.widget.tests.android.DefaultAndroidWidget;
9+
import org.hamcrest.Matchers;
910
import org.junit.jupiter.params.ParameterizedTest;
1011
import org.junit.jupiter.params.provider.Arguments;
1112
import org.junit.jupiter.params.provider.MethodSource;
1213
import org.openqa.selenium.WebDriver;
14+
import org.openqa.selenium.WebElement;
1315

1416
import java.util.List;
1517
import java.util.stream.Stream;
@@ -58,6 +60,8 @@ void checkThatWidgetsAreCreatedCorrectly(AbstractApp app, WebDriver driver,
5860
assertThat("Expected widget class was " + widgetClass.getName(),
5961
app.getWidget().getSelfReference().getClass(),
6062
equalTo(widgetClass));
63+
assertThat(app.getWidget().getSelfReference().getClass(),
64+
Matchers.instanceOf(WebElement.class));
6165

6266
List<Class<?>> classes = app.getWidgets().stream().map(abstractWidget -> abstractWidget
6367
.getSelfReference().getClass())

0 commit comments

Comments
 (0)