我正在为Android应用程序编写自动化。
要编写自动化代码,我正在使用uiautomatorviewer(android sdk工具)检查应用程序
我想查看华氏度和摄氏度的天气。
有一个按钮开关天气单位。
切换天气单位后,我怎么知道华氏度或摄氏度
以下是附加的屏幕截图
天气单位
Fahrenheit
摄氏度
仅供参考我不是改变移动应用程序代码的开发人员。我正在为移动应用程序编写自动化测试。有没有办法使用http://appium.io/使用java自动执行此操作?
答案 0 :(得分:0)
使用开关,
<Switch
android:id="@+id/mySwitch"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:textOn="deg celcius"
android:textOff="deg fah"/>
你打开= deg Celcius并关闭= deg Fahrenheit,所以使用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
}
}
});
答案 1 :(得分:0)
根据你的解释,你看起来需要一个ToggleButton Toggle Button Developer Link。
如果按钮被选中,您可以通过以下方式获取:
boolean on = ((ToggleButton) view).isChecked();
一旦你有了togglebutton,在你的布局中只需设置:
android:textOn="@string/Fahrenheit"
android:textOff="@string/Celsius"
此按钮的OnClickListener执行您各自的逻辑。这应该足以让您前进。
答案 2 :(得分: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");
}
}
});
答案 3 :(得分:0)
我建议您选择Switch,但如果您想继续使用,那么您必须自己管理两个textview的状态(启用/禁用)。
TextView fehreniteTextview, celsiusTextView;
fehreniteTextview=(TextView)findViewById(R.id.fehrenite);
celsiusTextView=(TextView)findViewById(R.id.celsius);
所以在这里,onClick你将不得不改变另一个文本视图的状态,如:
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
}
我希望,它可以帮到你!
答案 4 :(得分:0)
通过查看屏幕截图,textview的背景颜色从灰色变为蓝色。因此,如果您获得textview的背景颜色,则可以知道哪个开关处于打开状态。 您可以查看https://groups.google.com/forum/#!topic/appium-discuss/buToEAIDn2c。
答案 5 :(得分:0)
这里的每个答案都来自Android开发者,而不是Android测试人员,没有人回答你的问题(他们似乎没有看到你无法改变应用程序本身)。
应用程序完成的方式你无法做到。 UiAutomator不会读取颜色或类似的东西。因此,如果这些元素的属性没有差异(除了文本和边界),它就无法知道所选择的含义。
如果应用程序正确完成,它将是一个ToogleButton,然后属性(选中或选中我确定哪个)将指示选择了哪个。