Я пытаюсь использовать переменную, которую я взял в одном классе, а затем использовать эту переменную в других классах.
Так что это мой код, и он в основном берет идентификатор из URL
public class GameId {
public String game_id() {
String currentURL = Drivers.getDriver().getCurrentUrl();
String[] arrayURL = currentURL.split("/");
int arrLength = arrayURL.length;
final String gameID;
gameID = arrayURL[arrLength - 1];
System.out.println(gameID);
return gameID;
}
}
Я пытаюсь использовать это в своих тестах в другом классе, но это не дает мне тот же ответ, я пытаюсь утверждать, что этот идентификатор игры включен в URL на другой странице, но функция снова работает, поэтому значение меняется.
public void guest_login_from_pick_screen(){
GameId gameid = new GameId();
WebDriverWait wait = new WebDriverWait(Drivers.getDriver(), 10);
gameid.game_id();
wait.until(ExpectedConditions.urlMatches("https://web-game-stage.sportdec.com/games/"+ gameid.game_id()+"/join/"));
}
Я использую обе эти функции в своем тесте, но я хочу, чтобы значение первого экземпляра (gameid.game_id ();) использовалось во втором экземпляре (fixscreen.guest_login_from_pick_screen ();). Вот полный код
@Test
public void join_game_already_logged_in () throws Exception {
Header header = new Header();
Thread.sleep(3000);
GameLobby gamelobby = new GameLobby();
gamelobby.clickElementWithName("Test Game");
gamelobby.select_game();
LeaderBoard leaderboard = new LeaderBoard();
GameId gameid = new GameId();
gameid.game_id();
leaderboard.numberOfUsers();
leaderboard.joinGame();
FixturesScreen fixscreen = new FixturesScreen();
fixscreen.guest_login_from_pick_screen();
fixscreen.four_picks_make();
Thread.sleep(4000);
fixscreen.picks_match_total();
fixscreen.submit_picks();
Login login = new Login();
login.select_register_from_login();
Register register = new Register();
register.register_in_pick_screen();
fixscreen.submit_picks();
Thread.sleep(3000);
PickReceipt pickReceipt = new PickReceipt();
pickReceipt.your_in_the_game();
}