Skip to content

Commit 079933e

Browse files
committed
Changes to run tests for app-automate
1 parent d6ff59f commit 079933e

2 files changed

Lines changed: 86 additions & 30 deletions

File tree

BrowserStack.java

Lines changed: 25 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -1,34 +1,37 @@
1-
package bs;
2-
3-
import java.io.File;
4-
import java.io.IOException;
5-
import java.net.MalformedURLException;
61
import java.net.URL;
7-
import org.apache.commons.io.FileUtils;
2+
import java.net.MalformedURLException;
3+
import io.appium.java_client.AppiumDriver;
4+
import io.appium.java_client.android.AndroidDriver;
5+
import io.appium.java_client.MobileElement;
6+
87
import org.openqa.selenium.By;
9-
import org.openqa.selenium.OutputType;
10-
import org.openqa.selenium.Platform;
11-
import org.openqa.selenium.TakesScreenshot;
128
import org.openqa.selenium.WebDriver;
139
import org.openqa.selenium.WebElement;
14-
import org.openqa.selenium.remote.Augmenter;
15-
import org.openqa.selenium.remote.DesiredCapabilities;
1610
import org.openqa.selenium.remote.RemoteWebDriver;
11+
import org.openqa.selenium.remote.DesiredCapabilities;
1712

1813
public class BrowserStack {
1914

2015
public static void main(String args[]) throws MalformedURLException, InterruptedException {
21-
DesiredCapabilities capability = DesiredCapabilities.firefox();
22-
WebDriver driver = new RemoteWebDriver(
23-
new URL("http://USERNAME:ACCESS_KEY@hub.browserstack.com/wd/hub"),
24-
capability
25-
);
26-
driver.get("http://www.google.com");
27-
System.out.println("Page title is: " + driver.getTitle());
28-
WebElement element = driver.findElement(By.name("q"));
29-
element.sendKeys("BrowserStack");
30-
element.submit();
31-
System.out.println("And the Title is: " + driver.getTitle());
16+
DesiredCapabilities capabilities = new DesiredCapabilities();
17+
18+
capabilities.setCapability("realMobile", true);
19+
capabilities.setCapability("device", "Samsung Galaxy S6");
20+
capabilities.setCapability("app", "bs://3fc0a1f5a158e935ad806b97288f4b24e11ebcc4");
21+
22+
AndroidDriver driver = new AndroidDriver(new URL("http://BROWSERSTACK_USERNAME:BROWSERSTACK_ACCESS_KEY@hub.browserstack.com/wd/hub"), capabilities);
23+
24+
WebElement searchElement = new WebDriverWait(driver, 30).until(
25+
ExpectedConditions.elementToBeClickable(By.id("Search Wikipedia")));
26+
searchElement.click();
27+
WebElement insertTextElement = new WebDriverWait(driver, 30).until(
28+
ExpectedConditions.elementToBeClickable(By.id("org.wikipedia.alpha:id/search_src_text")));
29+
insertTextElement.sendKeys("BrowserStack");
30+
Thread.sleep(5000);
31+
32+
List<WebElement> allProductsName = driver.findElements(By.className("android.widget.TextView"));
33+
assertTrue(allProductsName.size() > 0);
34+
3235
driver.quit();
3336
}
3437
}

LocalSample.java

Lines changed: 61 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -1,20 +1,73 @@
1+
import com.browserstack.local.Local;
2+
3+
import java.net.URL;
4+
import java.net.MalformedURLException;
5+
6+
import io.appium.java_client.AppiumDriver;
7+
import io.appium.java_client.android.AndroidDriver;
8+
import io.appium.java_client.MobileElement;
9+
110
import org.openqa.selenium.By;
211
import org.openqa.selenium.WebDriver;
312
import org.openqa.selenium.WebElement;
4-
import org.openqa.selenium.firefox.*;
13+
import org.openqa.selenium.remote.RemoteWebDriver;
14+
import org.openqa.selenium.remote.DesiredCapabilities;
515

616
public class LocalSample {
17+
private static Local localInstance;
18+
19+
public static void setupLocal() throws Exception {
20+
localInstance = new Local();
21+
Map<String, String> options = new HashMap<String, String>();
22+
options.put("key", accessKey);
23+
localInstance.start(options);
24+
}
25+
26+
public static void tearDownLocal() throws Exception {
27+
localInstance.stop();
28+
}
729

830
public static void main(String[] args) throws Exception {
31+
setupLocal();
32+
33+
DesiredCapabilities capabilities = new DesiredCapabilities();
34+
35+
capabilities.setCapability("browserstack.local", true);
36+
capabilities.setCapability("realMobile", true);
37+
capabilities.setCapability("device", "Samsung Galaxy S6");
38+
capabilities.setCapability("app", "bs://3fc0a1f5a158e935ad806b97288f4b24e11ebcc4");
39+
40+
AndroidDriver driver = new AndroidDriver(new URL("http://BROWSERSTACK_USERNAME:BROWSERSTACK_ACCESS_KEY@hub.browserstack.com/wd/hub"), capabilities);
41+
42+
WebElement searchElement = new WebDriverWait(driver, 30).until(
43+
ExpectedConditions.elementToBeClickable(By.id("com.example.android.basicnetworking:id/test_action")));
44+
searchElement.click();
45+
WebElement insertTextElement = new WebDriverWait(driver, 30).until(
46+
ExpectedConditions.elementToBeClickable(By.className("android.widget.TextView")));
47+
48+
WebElement testElement = null;
49+
List<WebElement> allTextViewElements = driver.findElements(By.className("android.widget.TextView"));
50+
Thread.sleep(10);
51+
for(WebElement textElement : allTextViewElements) {
52+
System.out.println(textElement.getText());
53+
if(textElement.getText().contains("The active connection is")) {
54+
testElement = textElement;
55+
}
56+
}
57+
58+
if(testElement == null) {
59+
File scrFile = ((TakesScreenshot)driver).getScreenshotAs(OutputType.FILE);
60+
FileUtils.copyFile(scrFile, new File(System.getProperty("user.dir") + "screenshot.png"));
61+
System.out.println("Screenshot stored at " + System.getProperty("user.dir") + "screenshot.png");
62+
throw new Error("Cannot find the needed TextView element from app");
63+
}
64+
String matchedString = testElement.getText();
65+
System.out.println(matchedString);
66+
assertTrue(matchedString.contains("The active connection is wifi"));
67+
assertTrue(matchedString.contains("Up and running"));
968

10-
WebDriver driver = new FirefoxDriver();
11-
driver.get("http://www.google.com/");
12-
System.out.println("Page title is: " + driver.getTitle());
13-
WebElement element = driver.findElement(By.name("q"));
14-
element.sendKeys("BrowserStack");
15-
element.submit();
16-
System.out.println("And the Title is: " + driver.getTitle());
1769
driver.quit();
1870

71+
tearDownLocal();
1972
}
2073
}

0 commit comments

Comments
 (0)