2017-01-13 2 views
1

У меня есть тест недействительного, который получает значение с сайта:Как использовать значение переменной из метода void?

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

Как можно использовать значение строки elementval в другом классе (метод является недействительным и не возвращает никакого значения, так как если она будет возвращать значение, то Джунт не будет работать)?

ответ

1

Вы не можете возвращать значения в функции с возвращаемым типом void. Попробуйте изменить его на статическое значение или вызвать статический метод в другом классе. Возможно, вам придется определить для этого новый класс.

0

Я не использую JUnit, поэтому, если вы не можете вернуть что-то другое, кроме void, один из вариантов - создать свойство статического класса в этом классе и поместить в него String. Из другого класса вы просто ссылаетесь на него.

В этом классе 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; 
+0

Я думаю, что это хороший подход, но когда Test1 завершил переменную elementval в test2, имеет значение Null. Как вы думаете, могу ли я сохранить значение элемента val для случая, когда Test1 закрыт? – Shroet

+0

Чтобы быть честным, лучшая практика заключается в том, что тесты не должны полагаться на данные друг от друга. Вы действительно должны найти лучший, другой способ сделать это. Каждый тест должен быть независимым и иметь возможность запускаться в любом порядке. – JeffC

+0

Спасибо, я найду другое решение. – Shroet

1

Просто оберните

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); 
} 

И просто используйте этот метод в обоих случаях: ваш тест и где-то он вам нужен.

+0

Перед каждым новым входом на сайт мне нужно будет сделать дополнительный тест, который будет получать значение электронной почты для пользователя? – Shroet

+0

Этот оператор должен иметь некоторый возврат var. Это должна быть строка? – Shroet

+0

Этот метод должен возвращать результат типа String (из затмения). – Shroet

Смежные вопросы