gpt4 book ai didi

java - if-else 语句对于 Appium Java 代码无法正常工作

转载 作者:行者123 更新时间:2023-12-02 11:10:59 28 4
gpt4 key购买 nike

我已经编写了带有 if-else 语句的 Java 代码,用户可以通过 4 条备用 route 的任意一条从“Screen1”移动到“Screen2”,并且我已为所有 enter image description here 附加了图像。可能的应用程序流程当然是由开发人员编写的代码决定的。只是添加使用的工具是Appium。

    driver.findElement(By.id("----")).click(); //this click will take from  'screen1' to next screen.
if(driver.findElement(By.id("com.abc.rbanking:id/WhatsNew")).isDisplayed())
{ //case if screen A is displayed just after screen 1
MobileElement cross = driver.findElement(By.xpath("//*[@class = 'android.widget.ImageView']"));
cross.click();

Thread.sleep(3000);

}

if(driver.findElement(By.xpath("//android.widget.TextView[@resource-id='com.abc.rbanking:id/text_logo'][text()='Security Question']")).isDisplayed())
{ //case when screen B is displayed Just after screen 1

MobileElement mfaQ = driver.findElement(By.id("com.abc.rbanking:id/MfaQuestionText"));
String question = mfaQ.getText();

String lastword = question.replaceAll("^.*?(\\w+)\\W*$", "$1");

System.out.println(lastword);

MobileElement answer = driver.findElement(By.id("com.abc.rbanking:id/MfaAnswerTextBox"));

answer.sendKeys(lastword);

MobileElement checkbox = driver.findElement(By.id("com.abc.rbanking:id/ShowChallengeAnswerCheckbox"));
checkbox.click();

Thread.sleep(3000);

MobileElement nextb = driver.findElement(By.id("com.abc.rbanking:id/PrimaryButton"));
nextb.click();

Thread.sleep(8000);
}

if(driver.findElement(By.id("com.abc.rbanking:id/WhatsNew")).isDisplayed())
{ //case when screen A is displayed after screen B
MobileElement cross = driver.findElement(By.xpath("//*[@class = 'android.widget.ImageView']"));
cross.click();
Thread.sleep(3000);
}


driver.findElement(By.id("----")); //this is code for 'Screen 2'

发生的情况是在执行脚本期间,首先检查“If”,然后跳过所有代码。我无法弄清楚这个问题。请帮忙。

最佳答案

这听起来好像(没有双关语)您实际上想要一个if else构造。因此,尝试仅使用单独的 if 语句:

// see if element on 'screen A' is displayed
if (driver.findElement(By.id("abc")).isDisplayed()) {
//execute a few statements

}

// see if element on 'Screen B' is displayed
if (driver.findElement(By.id("xyz")).isDisplayed()) {

// execute a few statements
}

// see if element on 'screen A' is displayed
if (driver.findElement(By.id("abc")).isDisplayed()) {

}
driver.findElement(By.id("----")); //this is code for 'Screen 2'

您所描述的行为,即第一个 if 被命中并且没有执行任何其他操作,正是您的代码应有的行为。如果您打算允许每个代码块都可能执行,那么我上面给出的就是一个选项。

关于java - if-else 语句对于 Appium Java 代码无法正常工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50625703/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com