使用方法的输出作为最终变量

时间:2018-02-28 07:32:48

标签: java selenium selenium-webdriver

情境:

有一种方法可以为学生生成密码。所有学生必须使用此密码。我们需要验证所有学生类型都可以使用此密码访问测试文件。

testClass extends BaseClass{
testStudent1(){
  driver.findElement(By.xpath(xpathExpression)).sendKeys(login.generatePassword());
}

testStudent2(){
  driver.findElement(By.xpath(xpathExpression)).sendKeys(login.generatePassword());
}

}

问题是这些Student方法都获得了新密码。如何生成一次密码并在整个项目中使用它?类似于变量的东西。

请原谅我这样的新手问题。

3 个答案:

答案 0 :(得分:2)

您可以使用静态字段

testClass extends BaseClass{
private static String pw = null;

testStudent1(){

   if (pw == null) 
          pw = login.generatePassword();

   driver.findElement(By.xpath(xpathExpression)).sendKeys(pw);

}

如果在多线程环境中使用

,则可能必须考虑线程安全性

答案 1 :(得分:2)

有很多解决方案。

鉴于上述示例,我会在您的public static final String添加BaseClass

class BaseClass {
    public static final String studentPassword = new Login().generatePassword();
}

在这种情况下,您的测试将如下所示:

testClass extends BaseClass{
testStudent1(){
  driver.findElement(By.xpath(xpathExpression)).sendKeys(studentPassword);
}

testStudent2(){
  driver.findElement(By.xpath(xpathExpression)).sendKeys(studentPassword);
}

}

我还要generatePassword() static方法。

答案 2 :(得分:0)

您可以使用静态变量来存储仅生成一次的密码,

你可以,

public static String pswd = login.generatePassword();

并使用此pswd作为函数参数。