簡體   English   中英

我如何模擬后退按鈕的單擊

[英]How can i simulate a Back-Button click

所以我和Robotium一起使測試自動化,但我遇到了一個小問題。 Robotium能夠“發送密鑰(keyevent.keycode_back)”,因此我可以從視圖返回到上一個,但是現在有另一個(android native)活動會在我單擊“忘記密碼”(超鏈接)時打開,並且我需要android本身以模擬后退按鈕的單擊。 有辦法嗎?

至於我正在處理的代碼:

@FlakyTest(tolerance = 2)
public void testperformMsgListItemandItemSelectTestAfterStartInLandscape_ShouldSucceed() throws Exception{
    try {

        mSolo.clickOnText("Forgotten Password?");
        assertFalse(mSolo.getCurrentActivity().hasWindowFocus());
        mSolo.sendKey(KeyEvent.KEYCODE_HOME);
        assertTrue(mSolo.getCurrentActivity().hasWindowFocus());
        mSolo.clickOnText("Register Now!");
        assertFalse(mSolo.getCurrentActivity().hasWindowFocus());

    } catch (AssertionError err) {
        mSolo.fail(getName(), err);
        throw err;
    }
}

創建一個KeyEvent並調度它。

例如:

KeyEvent kdown = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
Activity.dispatchKeyEvent(kdown);

另一種方法是在您的活動中僅調用finish() 這樣就處理了當前活動,並帶您回到上一個活動,這正是您單擊后退按鈕時Android OS所做的。

如果當前活動屬於您正在測試的應用,請使用

mSolo.goBack();

如果當前活動屬於另一個應用程序,Robotium將無法執行任何操作,因此要編寫有用的測試,就不能讓您的測試啟動其他應用程序。

如果> = API LEVEL5:

   super.onBackPressed()

其他

    KeyEvent kdown = new KeyEvent(KeyEvent.ACTION_DOWN, KeyEvent.KEYCODE_BACK);
    Activity.dispatchKeyEvent(kdown);

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM