Java 如何使用void方法中的变量值?

Java 如何使用void方法中的变量值?,java,selenium,junit,Java,Selenium,Junit,我有一些从网站上获取价值的无效测试: @Test public void MemberEditInfo(){ ... WebElement element = driver.findElement(By.id("Member_Email")); String elementval = element.getAttribute("value"); } 如何在另一个类中使用Stringelementval的值

我有一些从网站上获取价值的无效测试:

  @Test
        public void MemberEditInfo(){
        ...
         WebElement element = driver.findElement(By.id("Member_Email"));
         String elementval = element.getAttribute("value");
         }

如何在另一个类中使用String
elementval
的值(该方法为void,不返回任何值,因为如果它将返回值,那么Junit将不起作用)?

不能在返回类型为
void
的函数中返回值。尝试将其更改为静态值或在另一个类中调用静态方法。您可能最终不得不为此定义一个新类。

您不能在返回类型为
void
的函数中返回值。尝试将其更改为静态值或在另一个类中调用静态方法。您可能最终不得不为此定义一个新类。

我不使用JUnit,因此如果您不能返回除void之外的其他内容,一个选项是在此类中创建一个静态类属性,并将
字符串放入其中。从另一个类中,您只需引用它

在这个类中,
Test1

static String elementVal;

@Test
public void MemberEditInfo()
{
    ...
    WebElement element = driver.findElement(By.id("Member_Email"));
    this.elementVal = element.getAttribute("value");
}
在另一个类中,
Test2

String elementVal = Test1.elementVal;

我不使用JUnit,因此如果不能返回除void之外的其他内容,一个选项是在这个类中创建一个静态类属性,并将
字符串放入其中。从另一个类中,您只需引用它

在这个类中,
Test1

static String elementVal;

@Test
public void MemberEditInfo()
{
    ...
    WebElement element = driver.findElement(By.id("Member_Email"));
    this.elementVal = element.getAttribute("value");
}
在另一个类中,
Test2

String elementVal = Test1.elementVal;
包起来

WebElement element = driver.findElement(By.id("Member_Email"));
String elementval = element.getAttribute("value");
比如说,转化为一种方法

public static String returnAttributeValue(driver_variable_type driver, String attr, String attrName) {
   driver.findElement(By.id(attr)).getAttribute(attrName);
}
只需在测试和需要的地方使用此方法。

只需包装即可

WebElement element = driver.findElement(By.id("Member_Email"));
String elementval = element.getAttribute("value");
比如说,转化为一种方法

public static String returnAttributeValue(driver_variable_type driver, String attr, String attrName) {
   driver.findElement(By.id(attr)).getAttribute(attrName);
}

在您的测试和您需要它的地方都使用这个方法。

我想这是一个很好的方法,但是当Test1结束时,test2中的变量elementval有空值。您认为,当Test1关闭时,我如何为这种情况保存元素val的值?老实说,最佳实践是测试不应该依赖彼此的数据。你真的应该找到一个更好的,不同的方法来做到这一点。每个测试都应该是独立的,并且应该能够以任何顺序运行。谢谢,我会找到另一个决定。我想这是一个很好的方法,但是当Test1结束时,test2中的变量elementval有空值。您认为,当Test1关闭时,我如何为这种情况保存元素val的值?老实说,最佳实践是测试不应该依赖彼此的数据。你真的应该找到一个更好的,不同的方法来做到这一点。每个测试应该是独立的,应该能够以任何顺序运行。谢谢,我会找到另一个决定。在每次新登录网站之前,我需要做一个额外的测试,它将为用户接收电子邮件值?此语句应该有一些返回变量。它应该是一些字符串?此方法必须返回字符串类型的结果(来自eclipse)。在每次新登录网站之前,我需要做一个额外的测试,它将为用户接收电子邮件值?此语句应该有一些返回变量。它应该是一些字符串?此方法必须返回字符串类型的结果(来自eclipse)。