Java 类android.support.test.espresso.web.webdriver.Locator 实例源码
项目:Android-BlogExample
文件:MainFragmentExtendTest.java
@Test
public void testShowAlertDialog() throws Throwable {
// create a signal to let us know when our task is done.
final CountDownLatch signal = new CountDownLatch(1);
waitWebViewLoad(MainFragment.DEFAULT_URL);
new Thread(new Runnable() {
@Override
public void run() {
try {
// Wait second
signal.await(1, TimeUnit.SECONDS);
// Find ok button and click
assertViewWithTextIsVisible(device, rule.getActivity().getString(android.R.string.ok));
} catch (Exception e) {
e.printStackTrace();
}
}
}).start();
// WebView show alert dialog
onWebView().withElement(findElement(Locator.ID, "showAlertBtn"))
.perform(webClick());
}
项目:Android-BlogExample
文件:MainFragmentTest.java
@Test
public void testWebToAndroidScriptCall() throws Exception {
String go = MainFragment.DEFAULT_URL;
onView(withId(R.id.et_url)).perform(clearText());
onView(withId(R.id.et_url)).perform(typeText(go)).perform(ViewActions.pressImeActionButton());
waitWebViewLoad();
onWebView()
// Find the search keyword element by ID
.withElement(findElement(Locator.ID, "search_keyword"))
// Clear previous input
.perform(clearElement())
// Enter text into the input element
.perform(DriverAtoms.webKeys(ANDROID_SCRIPT_CALL))
// Value check. script getValue 'search_keyword'
.check(webMatches(script("return document.getElementById('search_keyword').value", castOrDie(String.class)), containsString(ANDROID_SCRIPT_CALL)))
// Find the submit button
.withElement(findElement(Locator.ID, "updateKeywordBtn"))
// Simulate a click via javascript
.perform(webClick());
onView(withId(R.id.et_keyword)).check(matches(withText(ANDROID_SCRIPT_CALL)));
}
项目:Android-BlogExample
文件:MainFragmentTest.java
@Test
public void testWebViewUpdateElementByDisplayed() throws Exception {
String go = MainFragment.DEFAULT_URL;
onView(withId(R.id.et_url)).perform(clearText());
onView(withId(R.id.et_url)).perform(typeText(go)).perform(ViewActions.pressImeActionButton());
waitWebViewLoad();
onView(withId(R.id.et_keyword)).perform(clearText()).perform(typeText(JAVASCRIPT_CALL));
onView(withId(R.id.btn_search)).perform(click());
onWebView()
// Find the message element by ID
.withElement(findElement(Locator.ID, "message"))
// Verify that the text is displayed
.check(webMatches(getText(), containsString(JAVASCRIPT_CALL)));
}
项目:Android-BlogExample
文件:MainFragmentTest.java
@Test
public void testChangeWebViewTest() throws Exception {
waitWebViewLoad();
onWebView()
// Find the search keyword element by ID
.withElement(findElement(Locator.ID, "url"))
// Clear previous input
.perform(clearElement())
// Enter text into the input element
.perform(DriverAtoms.webKeys("http://google.com/"))
// Find the submit button
.withElement(findElement(Locator.ID, "changeWebView"))
// Simulate a click via javascript
.perform(webClick());
onWebView()
.withNoTimeout()
.check(webMatches(getCurrentUrl(), containsString("https://www.google")));
}
项目:firefox-tv
文件:MultitaskingTest.java
private void longPressLink(String id, String label, String path) {
onWebView()
.withElement(findElement(Locator.ID, id))
.check(webMatches(getText(), equalTo(label)));
simulateLinkLongPress(path);
}
项目:firefox-tv
文件:PullDownToRefreshTest.java
@Test
public void pullDownToRefreshTest() throws InterruptedException, UiObjectNotFoundException, IOException {
onView(withId(R.id.urlView))
.check(matches(isDisplayed()))
.check(matches(hasFocus()))
.perform(click(), replaceText(webServer.url("/").toString()), pressImeActionButton());
onView(withId(R.id.display_url))
.check(matches(isDisplayed()))
.check(matches(withText(containsString(webServer.getHostName()))));
onWebView()
.withElement(findElement(Locator.ID, COUNTER))
.check(webMatches(getText(), containsString(FIRST_TIME)));
onView(withId(R.id.swipe_refresh))
.check(matches(isDisplayed()));
// Swipe down to refresh, spinner is shown (2nd child) and progress bar is shown
onView(withId(R.id.swipe_refresh))
.perform(withCustomConstraints(swipeDown(), isDisplayingAtLeast(85)))
.check(matches(hasChildCount(2)));
onWebView()
.withElement(findElement(Locator.ID, COUNTER))
.check(webMatches(getText(), containsString(SECOND_TIME)));
}
项目:firefox-tv
文件:ErrorPagesScreenshots.java
@Test
public void takeScreenshotsOfErrorPages() throws Exception {
for (ErrorTypes error: ErrorTypes.values()) {
onView(withId(R.id.urlView))
.check(matches(isDisplayed()))
.check(matches(hasFocus()))
.perform(click(), replaceText("error:" + error.value), pressImeActionButton());
assertTrue(TestHelper.webView.waitForExists(waitingTime));
assertTrue(TestHelper.progressBar.waitUntilGone(waitingTime));
// Android O has an issue with using Locator.ID
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
UiObject tryAgainBtn = device.findObject(new UiSelector()
.descriptionContains(getString(R.string.errorpage_refresh))
.clickable(true));
assertTrue(tryAgainBtn.waitForExists(waitingTime));
} else {
onWebView()
.withElement(findElement(Locator.ID, "errorTitle"))
.perform(webClick());
onWebView()
.withElement(findElement(Locator.ID, "errorTryAgain"))
.perform(webScrollIntoView());
}
Screengrab.screenshot(error.name());
onView(withId(R.id.display_url))
.check(matches(isDisplayed()))
.perform(click());
}
}
项目:firefox-tv
文件:CustomTabTest.java
@Test
public void testCustomTabUI() throws Exception {
try {
startWebServer();
// Launch activity with custom tabs intent
activityTestRule.launchActivity(createCustomTabIntent());
// Wait for website to load
onWebView()
.withElement(findElement(Locator.ID, TEST_PAGE_HEADER_ID))
.check(webMatches(getText(), equalTo(TEST_PAGE_HEADER_TEXT)));
// Verify action button is visible
onView(withContentDescription(ACTION_BUTTON_DESCRIPTION))
.check(matches(isDisplayed()));
// Open menu
onView(withId(R.id.menuView))
.perform(click());
// Verify share action is visible
onView(withId(R.id.share))
.check(matches(isDisplayed()));
// Verify custom menu item is visible
onView(withText(MENU_ITEM_LABEL))
.check(matches(isDisplayed()));
// Close the menu again
Espresso.pressBack();
// Verify close button is visible - Click it to close custom tab.
onView(withId(R.id.customtab_close))
.check(matches(isDisplayed()))
.perform(click());
} finally {
stopWebServer();
}
}
项目:focus-android
文件:ErrorPagesScreenshots.java
@Test
public void takeScreenshotsOfErrorPages() throws Exception {
for (ErrorTypes error: ErrorTypes.values()) {
onView(withId(R.id.urlView))
.check(matches(isDisplayed()))
.check(matches(hasFocus()))
.perform(click(), replaceText("error:" + error.value), pressImeActionButton());
assertTrue(TestHelper.webView.waitForExists(waitingTime));
assertTrue(TestHelper.progressBar.waitUntilGone(waitingTime));
// Android O has an issue with using Locator.ID
if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.O) {
UiObject tryAgainBtn = device.findObject(new UiSelector()
.descriptionContains(getString(R.string.errorpage_refresh))
.clickable(true));
assertTrue(tryAgainBtn.waitForExists(waitingTime));
} else {
onWebView()
.withElement(findElement(Locator.ID, "errorTitle"))
.perform(webClick());
onWebView()
.withElement(findElement(Locator.ID, "errorTryAgain"))
.perform(webScrollIntoView());
}
Screengrab.screenshot(error.name());
onView(withId(R.id.display_url))
.check(matches(isDisplayed()))
.perform(click());
}
}
项目:focus-android
文件:MultitaskingTest.java
private void longPressLink(String id, String label, String path) {
onWebView()
.withElement(findElement(Locator.ID, id))
.check(webMatches(getText(), equalTo(label)));
simulateLinkLongPress(path);
}
项目:focus-android
文件:PullDownToRefreshTest.java
@Test
public void pullDownToRefreshTest() throws InterruptedException, UiObjectNotFoundException, IOException {
onView(withId(R.id.urlView))
.check(matches(isDisplayed()))
.check(matches(hasFocus()))
.perform(click(), replaceText(webServer.url("/").toString()), pressImeActionButton());
onView(withId(R.id.display_url))
.check(matches(isDisplayed()))
.check(matches(withText(containsString(webServer.getHostName()))));
onWebView()
.withElement(findElement(Locator.ID, COUNTER))
.check(webMatches(getText(), containsString(FIRST_TIME)));
onView(withId(R.id.swipe_refresh))
.check(matches(isDisplayed()));
// Swipe down to refresh, spinner is shown (2nd child) and progress bar is shown
onView(withId(R.id.swipe_refresh))
.perform(withCustomConstraints(swipeDown(), isDisplayingAtLeast(85)))
.check(matches(hasChildCount(2)));
onWebView()
.withElement(findElement(Locator.ID, COUNTER))
.check(webMatches(getText(), containsString(SECOND_TIME)));
}
项目:focus-android
文件:CustomTabTest.java
@Test
public void testCustomTabUI() throws Exception {
try {
startWebServer();
// Launch activity with custom tabs intent
activityTestRule.launchActivity(createCustomTabIntent());
// Wait for website to load
onWebView()
.withElement(findElement(Locator.ID, TEST_PAGE_HEADER_ID))
.check(webMatches(getText(), equalTo(TEST_PAGE_HEADER_TEXT)));
// Verify action button is visible
onView(withContentDescription(ACTION_BUTTON_DESCRIPTION))
.check(matches(isDisplayed()));
// Open menu
onView(withId(R.id.menuView))
.perform(click());
// Verify share action is visible
onView(withId(R.id.share))
.check(matches(isDisplayed()));
// Verify custom menu item is visible
onView(withText(MENU_ITEM_LABEL))
.check(matches(isDisplayed()));
// Close the menu again
Espresso.pressBack();
// Verify close button is visible - Click it to close custom tab.
onView(withId(R.id.customtab_close))
.check(matches(isDisplayed()))
.perform(click());
} finally {
stopWebServer();
}
}
项目:Android-BlogExample
文件:MainFragmentTest.java
@Test
public void testCallWebJavascript() throws Throwable {
waitWebViewLoad();
onWebView()
// Find the search keyword element by ID
.withElement(findElement(Locator.ID, "search_keyword"))
// Clear previous input
.perform(clearElement())
// Enter text into the input element
.perform(DriverAtoms.webKeys(ANDROID_SCRIPT_CALL))
.perform(script("updateKeyword();"));
onView(withId(R.id.et_keyword)).check(matches(withText(ANDROID_SCRIPT_CALL)));
}
项目:danish-media-license
文件:AboutActivityAndroidTest.java
@Test
public void contentLicenses_whenClicked_thenWebViewWithContentLicensesIsLaunched() {
// When
onView(withChildText(R.id.guidedactions_list, R.string.ondemand_settings_about_content))
.perform(pressKey(KeyEvent.KEYCODE_ENTER));
// Then
enableJavaScriptInWebViewToSupportEspresso();
onWebView().withElement(findElement(Locator.XPATH, "/html/body/h1"))
.check(webMatches(getText(), is(getString(R.string.ondemand_settings_about_content))));
}
项目:danish-media-license
文件:AboutActivityAndroidTest.java
@Test
public void thirdPartyLicenses_whenClicked_thenWebViewWithThirdPartyLicensesIsLaunched() {
// When
onView(withChildText(R.id.guidedactions_list, R.string.ondemand_settings_about_thirdparty))
.perform(pressKey(KeyEvent.KEYCODE_DPAD_DOWN), pressKey(KeyEvent.KEYCODE_ENTER));
// Then
enableJavaScriptInWebViewToSupportEspresso();
onWebView().withElement(findElement(Locator.XPATH, "/html/body/h1"))
.check(webMatches(getText(), is(getString(R.string.ondemand_settings_about_thirdparty))));
}
项目:aws-device-farm-sample-app-for-android
文件:LocalWebViewTest.java
/**
* Enters a full name and then asserts if it's displayed
*
* @param firstName the entered first name
* @param lastName the entered last name
*/
private void assertName(String firstName, String lastName) {
typeIntoWebField(FIRST_NAME_FORM_ID, firstName);
typeIntoWebField(LAST_NAME_FORM_ID, lastName);
onWebView().withElement(findElement(Locator.ID, FULL_NAME_DISPLAY_ID)).
check(webMatches(getText(), containsString(firstName + " " + lastName)));
}
项目:firefox-tv
文件:MultitaskingTest.java
@Test
public void testVisitingMultipleSites() {
{
// Load website: Erase button visible, Tabs button not
navigateToMockWebServer(webServer, "tab1.html");
checkTabIsLoaded("Tab 1");
onFloatingEraseButton()
.check(matches(isDisplayed()));
onFloatingTabsButton()
.check(matches(not(isDisplayed())));
}
{
// Open link in new tab: Erase button hidden, Tabs button visible
longPressLink("tab2", "Tab 2", "tab2.html");
openInNewTab();
onFloatingEraseButton()
.check(matches(not(isDisplayed())));
onFloatingTabsButton()
.check(matches(isDisplayed()))
.check(matches(withContentDescription(is("Tabs open: 2"))));
}
{
// Open link in new tab: Tabs button updated, Erase button still hidden
longPressLink("tab3", "Tab 3", "tab3.html");
openInNewTab();
onFloatingEraseButton()
.check(matches(not(isDisplayed())));
onFloatingTabsButton()
.check(matches(isDisplayed()))
.check(matches(withContentDescription(is("Tabs open: 3"))));
}
{
// Open tabs tray and switch to second tab.
onFloatingTabsButton()
.perform(click());
final String expectedUrl = webServer.getHostName() + "/tab2.html";
onView(withText(expectedUrl))
.perform(click());
onWebView()
.withElement(findElement(Locator.ID, "content"))
.check(webMatches(getText(), equalTo("Tab 2")));
}
{
// Remove all tabs via the menu
onFloatingTabsButton()
.perform(click());
onView(withText(R.string.tabs_tray_action_erase))
.perform(click());
assertFalse(SessionManager.getInstance().hasSession());
}
SystemClock.sleep(5000);
}
项目:firefox-tv
文件:MultitaskingTest.java
private void checkTabIsLoaded(String title) {
onWebView()
.withElement(findElement(Locator.ID, "content"))
.check(webMatches(getText(), equalTo(title)));
}
项目:firefox-tv
文件:URLMismatchTest.java
@Test
public void MismatchTest() throws InterruptedException, UiObjectNotFoundException {
// Type "mozilla" into the URL bar.
onView(withId(R.id.urlView))
.check(matches(isDisplayed()))
.check(matches(hasFocus()))
.perform(click(), replaceText("mozilla"));
// Verify that the search hint is displayed and click it.
onView(withId(R.id.searchView))
.check(matches(isDisplayed()))
.check(matches(withText("Search for mozilla")))
.check(matches(isClickable()))
.perform(click());
// A WebView is displayed
onView(withId(R.id.webview))
.check(matches(isDisplayed()));
// The displayed URL contains mozilla. Click on it to edit it again.
onView(withId(R.id.display_url))
.check(matches(isDisplayed()))
.check(matches(withText(containsString("mozilla"))))
.perform(click());
// Type "moz" - Verify that it auto-completes to "mozilla.org" and then load the website
onView(withId(R.id.urlView))
.perform(click(), replaceText("mozilla"))
.check(matches(withText("mozilla.org")))
.perform(pressImeActionButton());
// Check we loaded the mozilla.org website
onWebView()
.withElement(findElement(Locator.CSS_SELECTOR, MOZILLA_WEBSITE_SLOGAN_SELECTOR))
.check(webMatches(getText(), containsString(MOZILLA_WEBSITE_SLOGAN_TEXT)));
// The displayed URL contains www.mozilla.org
onView(withId(R.id.display_url))
.check(matches(isDisplayed()))
.check(matches(withText(containsString("www.mozilla.org"))));
}
项目:focus-android
文件:MultitaskingTest.java
@Test
public void testVisitingMultipleSites() {
{
// Load website: Erase button visible, Tabs button not
navigateToMockWebServer(webServer, "tab1.html");
checkTabIsLoaded("Tab 1");
onFloatingEraseButton()
.check(matches(isDisplayed()));
onFloatingTabsButton()
.check(matches(not(isDisplayed())));
}
{
// Open link in new tab: Erase button hidden, Tabs button visible
longPressLink("tab2", "Tab 2", "tab2.html");
openInNewTab();
onFloatingEraseButton()
.check(matches(not(isDisplayed())));
onFloatingTabsButton()
.check(matches(isDisplayed()))
.check(matches(withContentDescription(is("Tabs open: 2"))));
}
{
// Open link in new tab: Tabs button updated, Erase button still hidden
longPressLink("tab3", "Tab 3", "tab3.html");
openInNewTab();
onFloatingEraseButton()
.check(matches(not(isDisplayed())));
onFloatingTabsButton()
.check(matches(isDisplayed()))
.check(matches(withContentDescription(is("Tabs open: 3"))));
}
{
// Open tabs tray and switch to second tab.
onFloatingTabsButton()
.perform(click());
final String expectedUrl = webServer.getHostName() + "/tab2.html";
onView(withText(expectedUrl))
.perform(click());
onWebView()
.withElement(findElement(Locator.ID, "content"))
.check(webMatches(getText(), equalTo("Tab 2")));
}
{
// Remove all tabs via the menu
onFloatingTabsButton()
.perform(click());
onView(withText(R.string.tabs_tray_action_erase))
.perform(click());
assertFalse(SessionManager.getInstance().hasSession());
}
SystemClock.sleep(5000);
}
项目:focus-android
文件:MultitaskingTest.java
private void checkTabIsLoaded(String title) {
onWebView()
.withElement(findElement(Locator.ID, "content"))
.check(webMatches(getText(), equalTo(title)));
}
项目:focus-android
文件:URLMismatchTest.java
@Test
public void MismatchTest() throws InterruptedException, UiObjectNotFoundException {
// Type "mozilla" into the URL bar.
onView(withId(R.id.urlView))
.check(matches(isDisplayed()))
.check(matches(hasFocus()))
.perform(click(), replaceText("mozilla"));
// Verify that the search hint is displayed and click it.
onView(withId(R.id.searchView))
.check(matches(isDisplayed()))
.check(matches(withText("Search for mozilla")))
.check(matches(isClickable()))
.perform(click());
// A WebView is displayed
onView(withId(R.id.webview))
.check(matches(isDisplayed()));
// The displayed URL contains mozilla. Click on it to edit it again.
onView(withId(R.id.display_url))
.check(matches(isDisplayed()))
.check(matches(withText(containsString("mozilla"))))
.perform(click());
// Type "moz" - Verify that it auto-completes to "mozilla.org" and then load the website
onView(withId(R.id.urlView))
.perform(click(), replaceText("mozilla"))
.check(matches(withText("mozilla.org")))
.perform(pressImeActionButton());
// Check we loaded the mozilla.org website
onWebView()
.withElement(findElement(Locator.CSS_SELECTOR, MOZILLA_WEBSITE_SLOGAN_SELECTOR))
.check(webMatches(getText(), containsString(MOZILLA_WEBSITE_SLOGAN_TEXT)));
// The displayed URL contains www.mozilla.org
onView(withId(R.id.display_url))
.check(matches(isDisplayed()))
.check(matches(withText(containsString("www.mozilla.org"))));
}
项目:android-java-snippets-sample
文件:SignInActivityTests.java
public static void AzureADSignIn(String username, String password, ActivityTestRule<SignInActivity> signInActivityTestRule) throws InterruptedException {
SignInActivity signInActivity = signInActivityTestRule.launchActivity(null);
onView(withId(R.id.o365_signin)).perform(click());
try {
onWebView()
.withElement(findElement(Locator.ID, USER_ID_TEXT_ELEMENT))
.perform(clearElement())
// Enter text into the input element
.perform(DriverAtoms.webKeys(username))
// Set focus on the username input text
// The form validates the username when this field loses focus
.perform(webClick())
.withElement(findElement(Locator.ID, PASSWORD_TEXT_ELEMENT))
// Now we force focus on this element to make
// the username element to lose focus and validate
.perform(webClick())
.perform(clearElement())
// Enter text into the input element
.perform(DriverAtoms.webKeys(password));
Thread.sleep(2000, 0);
onWebView()
.withElement(findElement(Locator.ID, SIGN_IN_BUTTON_ELEMENT))
.perform(webClick());
} catch (NoMatchingViewException ex) {
// If user is already logged in, the flow will go directly to SnippetListActivity
} finally {
Thread.sleep(2000, 0);
}
// Finally, verify that SnippetListActivity is on top
intended(allOf(
hasComponent(hasShortClassName(".SnippetListActivity")),
toPackage("com.microsoft.graph.snippets")
));
signInActivity.finish();
}
项目:aws-device-farm-sample-app-for-android
文件:LocalWebViewTest.java
/**
* Types a given string into a id
*
* @param id the element id
* @param text the text input
*/
private void typeIntoWebField(String id, String text){
onWebView().withElement(findElement(Locator.ID, id)).perform(clearElement()).perform(webKeys(text));
}