2015-06-02 97 views
1

我正在爲android應用程序編寫自動化。如何知道點擊或不點擊的按鈕

要編寫自動化代碼,我檢查使用uiautomatorviewer(Android SDK工具)

我要查看在華氏和攝氏天氣的應用程序。

有一個按鈕開關天氣單位。

開關氣象單位後,我怎麼能知道我在華氏或攝氏

這裏是連接

  1. 天氣單位enter image description here

  2. 華氏enter image description here

  3. 截屏攝氏溫度enter image description here

僅供參考我不是開發人員更改移動應用程序代碼。我正在爲移動應用程序編寫自動化測試。有沒有什麼辦法使用java自動化使用http://appium.io/

+0

使用布爾值爲textview點擊或我建議你應該使用切換按鈕,而不是textviews。 –

+0

爲什麼不使用開關或切換代替textview? – AAnkit

回答

0

使用一個開關,

<Switch 
    android:id="@+id/mySwitch" 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:textOn="deg celcius" 
    android:textOff="deg fah"/> 

你已經上=開關度攝氏度,並關閉=度華氏溫度,因此使用setOnCheckedChangeListener

Switch switchStatus = (TextView) findViewById(R.id.switchStatus); 
mySwitch = (Switch) findViewById(R.id.mySwitch); 
mySwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() { 

    @Override 
    public void onCheckedChanged(CompoundButton buttonView, 
    boolean isChecked) { 

     if(isChecked){ // deg celcius 
      // Do operation 
     }else{ // deg fahrenheit 
      // Do operation 
     }  
    } 
}); 
+0

我已更新問題。請看看它。 – karan

0

你的說明,它看起來像你需要一個切換按鈕Toggle Button Developer Link

如果按鈕被選中或不你可以得到:

boolean on = ((ToggleButton) view).isChecked(); 

一旦你切換按鈕,在你的佈局簡單設置:

此按鈕的
android:textOn="@string/Fahrenheit" 
android:textOff="@string/Celsius" 

OnClickListener執行你們各自的邏輯。這應該足以讓你去。

+0

我已更新問題。請看看它。 – karan

0

試試這個:

YourSwitch.setOnCheckedChangeListener(new OnCheckedChangeListener() { 
    @Override 
    public void onCheckedChanged(CompoundButton buttonView, 
    boolean isChecked) { 
    if(isChecked){ 
    switchStatus.setText("Switch is currently ON"); 
    }else{ 
    switchStatus.setText("Switch is currently OFF"); 
    } 
    } 
    }); 
+0

我已更新問題。請看看它。 – karan

0

我建議你去交換,但仍,如果你想要去的話,那麼你將不得不自己來管理狀態(啓用/禁用)都textviews的。

TextView fehreniteTextview, celsiusTextView; 
fehreniteTextview=(TextView)findViewById(R.id.fehrenite); 
celsiusTextView=(TextView)findViewById(R.id.celsius); 

所以在這裏,的onClick你將不得不改變另一個TextView的狀態太像:

public void onClickOfFahrenite(View v){ 
    celsiusTextView.setEnabled(true); 
    fehreniteTextview.setEnabled(false); 
} 

public void onClickOfCelsius(View v){ 
    celsiusTextView.setEnabled(false); 
    fehreniteTextview.setEnabled(true); 
} 

現在作出任何決定之前,你必須檢查,其中一個TextView的啓用,使用:

if(fehreniteTextview.isEnabled()) 
{ 
// Do your stuff 
} 
else 
{ 
// Do your stuff 
} 

我希望它可以幫助你!

0

從看到截圖後,textview的背景顏色從灰色變爲藍色。因此,如果您獲得了textview的背景顏色,您將可能知道哪個開關處於開啓狀態。 你可以看看https://groups.google.com/forum/#!topic/appium-discuss/buToEAIDn2c

+0

我如何使用appium爲應用程序獲取背景色。請參閱https://github.com/appium/appium/issues/1920 – karan

0

這裏的每個答案都來自Android開發人員而不是Android測試人員,但沒有人回答您的問題(他們似乎沒有閱讀過您不能更改應用程序本身)。

應用程序完成的方式,你不能這樣做。 UiAutomator不會讀取顏色或類似的東西。因此,如果這些元素的屬性(除了文本和邊界)沒有差異,它就無法知道選擇的手段。

如果應用程序正確完成,它將是一個ToogleButton,然後屬性(選中或選擇,我確定是哪個)將指示選中哪個。

相關問題