当前位置: 首页 > 知识库问答 >
问题:

如何使用方法调用内部的各种方法并在硒中返回true

申光临
2023-03-14

我想有一个方法公共布尔verfySignIn()并在里面调用下面的方法并返回true,

setUserName(String)此方法用于设置用户名。setPassword(字符串)此方法用于设置密码。clickLogin()此方法用于单击login按钮。

这是我的代码现在的样子,

public boolean verifySignIn() 
{       
setUserName("user");
setPassword("admin123");
clickLogin();
return true;

}

共有3个答案

桓智敏
2023-03-14

我认为要验证登录,此方法中最重要的事情是检查单击该登录按钮是否真的能将您带到您应该到达的地方。

所以,我会做这样的方法:

public boolean verifySignIn() {
    setUserName("user");
    setPassword("admin123");
    return clickLogin();
  }

然后我会更好地定义clickLogin()方法:

public boolean clickLogin() {
    WebElement loginButton = driver.findElement(By.id("someId"));
    loginButton.click;
    return !driver.findElements(By.id("someElementOnPage")).isEmpty();
  }

DebanjanB的try/catch解决方案很好,但它唯一验证的是没有异常。它实际上不会验证登录是否将您带到正确的页面。

葛承嗣
2023-03-14

如果我要这样做,我会这样做:

public boolean verifySignIn(){       
   return clickLogin(email, password);
}

方法impl.

public boolean clickLogin(email, password){
    setUserName("user");
    setPassword("admin123");
    //do some assert, return result
    Assert.assertTrue(); // if it fails, You wont be able to execute any further.
    // or have some kind of check and return boolean

    return true;   
}

但无论如何,请尝试使用PageObject设计,而不是返回布尔值。如果一切正常,返回您登录的页面对象(如主页)。所以,您可以与下一个页面交互,或者只要在成功登录后检查它,就可以扩展和模块化您的测试

弘承业
2023-03-14

要从verfySignIn()返回true,您可以将函数包装在try-catch{}块中,如下所示:

public boolean verifySignIn() {  
       try{  
            setUserName("user");
            setPassword("admin123");
            clickLogin();
            return true;  
       }catch(Exception e){
            return false;
       }  
} 
 类似资料:
  • 我创建了一个接口,以便可以在对话和片段之间进行通信。 目标:当用户从对话框中选择任何内容时,应将其显示在文本视图中。 在这个界面中,我创建了一个界面方法,在主活动中调用,并传递用户在对话框中选择的值。与用户选择的值一起,在我的片段中,我创建了一个方法,将文本视图设置为该值。然而,每当我调用该方法时,它总是返回null。 我对日志进行了大量测试,发现通过我的方法传递的值不是空的,一切似乎都按照我想要

  • 让我向您展示getCurrentWeatherWithForecastUsecase类actgually是什么样子: } //这很容易,它只需要一个天气存储库,并要求它获取结果。我把它发送回调用者,调用者将显示它。 更新: 以下是故障的整个堆栈跟踪:

  • 问题内容: 尝试在Parent类中创建1个接口和2个具体类。这将使封闭类成为内部类。 现在,我真的不确定如何在静态main()方法中创建C类的对象并调用C类的call()方法。现在我遇到了问题: 问题答案: 这里的内部类不是静态的,因此您需要创建一个外部类的实例,然后调用new, 但是在这种情况下,您可以将内部类设为静态, 那就可以使用了

  • 所以我希望fxml文件中的这段代码实际上会调用sceneHandeler中的一个名为setBackground的方法,但它给了我一个错误:

  • 我有一个CustomRequest类: } 然后我有我的类JSONRequest: } 我想做的是在我的postRequest方法中,有一个CustomRequest类的对象叫做JSONObject Request,我想将JSONObject响应变量从onResponse方法返回给父postRequest方法,我在以下位置得到一个错误: 因为它告诉我方法的返回类型是void,请告诉我我做错了什么,

  • 问题内容: 有没有一种方法可以等待诺言,以便您可以从中获得实际结果并返回,而不是返回诺言本身?我在考虑类似于C#await关键字与Tasks一起工作的方式。 这是为什么我想拥有像canAccess()这样的方法的示例,该方法返回true或false而不是promise,以便可以在if语句中使用它。方法canAccess()将使用$ http或$ resource进行AJAX调用,然后以某种方式等待