[英]How to know button on/off clicked or not
我正在為android應用程序編寫自動化。
要編寫自動化代碼,我正在使用uiautomatorviewer(android sdk工具)檢查一個應用程序
我想查看華氏和攝氏的天氣。
有一個按鈕開關天氣單位。
切換天氣單位后,我怎么知道華氏或攝氏
這是所附的屏幕截圖
天氣單位
華氏溫度
攝氏溫度
僅供參考,我不是更改移動應用代碼的開發人員。 我正在為移動應用編寫自動化測試。 有什么方法可以使用帶有Java的http://appium.io/自動執行此操作?
使用開關,
<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
}
}
});
根據您的解釋,您似乎需要一個ToggleButton 切換按鈕開發人員鏈接 。
您可以通過以下方式獲取是否選中該按鈕:
boolean on = ((ToggleButton) view).isChecked();
一旦有了切換按鈕,就可以在布局中進行簡單設置:
android:textOn="@string/Fahrenheit"
android:textOff="@string/Celsius"
該按鈕的OnClickListener執行您各自的邏輯。這應該足以使您繼續前進。
嘗試這個:
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");
}
}
});
我建議您使用Switch,但如果仍然要使用Switch,則必須自己管理兩個文本視圖的狀態(啟用/禁用)。
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);
}
現在,在做出任何決定之前,您將必須使用以下命令檢查是否啟用了一個文本視圖:
if(fehreniteTextview.isEnabled())
{
// Do your stuff
}
else
{
// Do your stuff
}
希望對您有幫助!
從屏幕截圖來看,textview的背景顏色從灰色變為藍色。 因此,如果您獲得了textview的背景色,則可以知道哪個開關為ON。 您可以查看https://groups.google.com/forum/#!topic/appium-discuss/buToEAIDn2c 。
這里的每個答案都是來自Android開發人員而不是Android測試人員,而且沒有人回答您的問題(他們似乎沒有讀懂您無法更改應用程序本身)。
應用程序的完成方式無法實現。 UiAutomator不讀取顏色或類似內容。 因此,如果這些元素的屬性沒有任何區別(“文本”和“邊界”除外),則無法知道所選的含義。
如果應用程序正確完成,它將是一個ToogleButton,然后屬性(已選中或選中,我確定是哪個)將指示選擇了哪個。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.