根据屏幕状态执行操作 (Android JAVA)
Perform actions based on screen presence (Android JAVA)
假设我有两个屏幕“A”和“B”,如果显示屏幕“A”我想执行操作“1”,如果显示屏幕“B”则执行操作“2”。最初我使用 if else 语句检查屏幕“A”和“B”的存在,但没有用。这是我的代码
if(screenAisShown())
{
button1.click;
} else if(screenBisShown) {
button2.click;
}
在第一个迭代屏幕中显示 A,因此 if 块成功执行,在第二个迭代屏幕中显示 B,但为 if 块抛出 NoSuchElementException,else if 未执行
TIA
您可以创建方法 isAScreenDisplayed() 和 isBScreenDisplayed().
public static boolean isAScreenDisplayed(){
try{
return elementOfAScreen.isDisplayed();
}catch(Exception e){
return false;
}
}
public static boolean isBScreenDisplayed(){
try{
return elementOfBScreen.isDisplayed();
}catch(Exception e){
return false;
}
}
现在您可以使用 if else 条件来检查显示的是哪个屏幕。
if(isAScreenDisplayed){
//do something
}
else if(isBScreenDisplayed){
//do something
}
还有一种方法可以验证,您可以使用currentActivity
方法将return当前屏幕Activity
名称作为String
if(driver.currentActivity().equals("Screen1 Activity Name"))
{
// wait for button1 code
if (button1.isDisplayed())
button1.click;
}
else if(driver.currentActivity().equals("Screen2 Activity Name")) {
// wait for button2 code
if (button2.isDisplayed())
button2.click;
}
else{
syso("Screen 1 OR Screen 2 are not in focus)"
}
假设我有两个屏幕“A”和“B”,如果显示屏幕“A”我想执行操作“1”,如果显示屏幕“B”则执行操作“2”。最初我使用 if else 语句检查屏幕“A”和“B”的存在,但没有用。这是我的代码
if(screenAisShown())
{
button1.click;
} else if(screenBisShown) {
button2.click;
}
在第一个迭代屏幕中显示 A,因此 if 块成功执行,在第二个迭代屏幕中显示 B,但为 if 块抛出 NoSuchElementException,else if 未执行
TIA
您可以创建方法 isAScreenDisplayed() 和 isBScreenDisplayed().
public static boolean isAScreenDisplayed(){
try{
return elementOfAScreen.isDisplayed();
}catch(Exception e){
return false;
}
}
public static boolean isBScreenDisplayed(){
try{
return elementOfBScreen.isDisplayed();
}catch(Exception e){
return false;
}
}
现在您可以使用 if else 条件来检查显示的是哪个屏幕。
if(isAScreenDisplayed){
//do something
}
else if(isBScreenDisplayed){
//do something
}
还有一种方法可以验证,您可以使用currentActivity
方法将return当前屏幕Activity
名称作为String
if(driver.currentActivity().equals("Screen1 Activity Name"))
{
// wait for button1 code
if (button1.isDisplayed())
button1.click;
}
else if(driver.currentActivity().equals("Screen2 Activity Name")) {
// wait for button2 code
if (button2.isDisplayed())
button2.click;
}
else{
syso("Screen 1 OR Screen 2 are not in focus)"
}