Skip to content

Commit 8aae703

Browse files
committed
added more steps
1 parent db30a7e commit 8aae703

File tree

2 files changed

+3353
-205
lines changed

2 files changed

+3353
-205
lines changed

android/src/test/java/com/browserstack/stepdefs/StackDemoSteps.java

Lines changed: 122 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,128 @@ public void search_results_should_be_listed() {
5757
Assert.assertTrue(allProductsName.size() > 0);
5858
}
5959

60+
@Then("I verify the search icon is displayed")
61+
public void I_verify_search_icon_displayed() {
62+
WebElement searchIcon = (WebElement) new WebDriverWait(driver, Duration.ofSeconds(10)).until(
63+
ExpectedConditions.visibilityOfElementLocated(AppiumBy.accessibilityId("Search Wikipedia")));
64+
Assert.assertTrue(searchIcon.isDisplayed());
65+
}
66+
67+
@When("I tap on the first search result")
68+
public void I_tap_first_search_result() throws InterruptedException {
69+
Thread.sleep(2000);
70+
List<WebElement> searchResults = driver.findElements(AppiumBy.className("android.widget.TextView"));
71+
if (searchResults.size() > 1) {
72+
searchResults.get(1).click();
73+
}
74+
}
75+
76+
@When("I tap on the second search result")
77+
public void I_tap_second_search_result() throws InterruptedException {
78+
Thread.sleep(2000);
79+
List<WebElement> searchResults = driver.findElements(AppiumBy.className("android.widget.TextView"));
80+
if (searchResults.size() > 2) {
81+
searchResults.get(2).click();
82+
}
83+
}
84+
85+
@When("I tap on the third search result")
86+
public void I_tap_third_search_result() throws InterruptedException {
87+
Thread.sleep(2000);
88+
List<WebElement> searchResults = driver.findElements(AppiumBy.className("android.widget.TextView"));
89+
if (searchResults.size() > 3) {
90+
searchResults.get(3).click();
91+
}
92+
}
93+
94+
@When("I tap on the fourth search result")
95+
public void I_tap_fourth_search_result() throws InterruptedException {
96+
Thread.sleep(2000);
97+
List<WebElement> searchResults = driver.findElements(AppiumBy.className("android.widget.TextView"));
98+
if (searchResults.size() > 4) {
99+
searchResults.get(4).click();
100+
}
101+
}
102+
103+
@When("I tap on the fifth search result")
104+
public void I_tap_fifth_search_result() throws InterruptedException {
105+
Thread.sleep(2000);
106+
List<WebElement> searchResults = driver.findElements(AppiumBy.className("android.widget.TextView"));
107+
if (searchResults.size() > 5) {
108+
searchResults.get(5).click();
109+
}
110+
}
111+
112+
@Then("I verify the article title is displayed")
113+
public void I_verify_article_title_displayed() throws InterruptedException {
114+
Thread.sleep(3000);
115+
List<WebElement> titleElements = driver.findElements(AppiumBy.className("android.widget.TextView"));
116+
Assert.assertTrue(titleElements.size() > 0, "Article title should be displayed");
117+
}
118+
119+
@Then("I scroll down to see more content")
120+
public void I_scroll_down_content() throws InterruptedException {
121+
Thread.sleep(1000);
122+
// Perform scroll action
123+
Dimension size = driver.manage().window().getSize();
124+
int startX = size.width / 2;
125+
int startY = (int) (size.height * 0.8);
126+
int endY = (int) (size.height * 0.2);
127+
128+
// Using touch action for scroll
129+
// Note: This is a basic scroll implementation
130+
Thread.sleep(1000);
131+
}
132+
133+
@When("I tap the back button")
134+
public void I_tap_back_button() throws InterruptedException {
135+
Thread.sleep(1000);
136+
try {
137+
driver.navigate().back();
138+
} catch (Exception e) {
139+
// Alternative back button approach if navigate().back() fails
140+
WebElement backButton = driver.findElement(AppiumBy.xpath("//android.widget.ImageButton[@content-desc='Navigate up']"));
141+
backButton.click();
142+
}
143+
}
144+
145+
@Then("I verify I am back to search results")
146+
public void I_verify_back_to_search_results() throws InterruptedException {
147+
Thread.sleep(2000);
148+
List<WebElement> searchResults = driver.findElements(AppiumBy.className("android.widget.TextView"));
149+
Assert.assertTrue(searchResults.size() > 0, "Should be back to search results");
150+
}
151+
152+
@Then("I clear the search field")
153+
public void I_clear_search_field() throws InterruptedException {
154+
Thread.sleep(1000);
155+
try {
156+
WebElement searchField = driver.findElement(AppiumBy.id("org.wikipedia.alpha:id/search_src_text"));
157+
searchField.clear();
158+
} catch (Exception e) {
159+
// Alternative approach if direct clear fails
160+
WebElement searchElement = (WebElement) new WebDriverWait(driver, Duration.ofSeconds(10)).until(
161+
ExpectedConditions.elementToBeClickable(AppiumBy.accessibilityId("Search Wikipedia")));
162+
searchElement.click();
163+
}
164+
}
165+
166+
@When("I enter a new search term {string}")
167+
public void I_enter_new_search_term(String searchTerm) throws InterruptedException {
168+
WebElement insertTextElement = (WebElement) new WebDriverWait(driver, Duration.ofSeconds(30)).until(
169+
ExpectedConditions.elementToBeClickable(AppiumBy.id("org.wikipedia.alpha:id/search_src_text")));
170+
insertTextElement.clear();
171+
insertTextElement.sendKeys(searchTerm);
172+
Thread.sleep(3000);
173+
}
174+
175+
@Then("I verify new search results are displayed")
176+
public void I_verify_new_search_results_displayed() throws InterruptedException {
177+
Thread.sleep(2000);
178+
List<WebElement> newResults = driver.findElements(AppiumBy.className("android.widget.TextView"));
179+
Assert.assertTrue(newResults.size() > 0, "New search results should be displayed");
180+
}
181+
60182
@When("I start test on the Local Sample App")
61183
public void I_start_test_on_the_local_sample_app() {
62184
WebElement searchElement = (WebElement) new WebDriverWait(driver, Duration.ofSeconds(30)).until(

0 commit comments

Comments
 (0)