Java 如何在两个步骤之间保持登录会话?

Java 如何在两个步骤之间保持登录会话?,java,cucumber,gherkin,Java,Cucumber,Gherkin,我正在尝试测试一个场景,其中我的用户登录,然后导航到站点上的另一个页面,但在登录状态步骤之后,我的登录状态丢失 我的小黄瓜看起来像这样: Scenario: Verify this random link Given I am logged in When I go to this page Then I can see this link 以及守则: public class Checkout { WebDriver driver; driver =

我正在尝试测试一个场景,其中我的用户登录,然后导航到站点上的另一个页面,但在登录状态步骤之后,我的登录状态丢失

我的小黄瓜看起来像这样:

Scenario: Verify this random link
    Given I am logged in
    When I go to this page
    Then I can see this link
以及守则:

public class Checkout {
    WebDriver driver;
    driver = DriverFactory.open("Chrome"); 
    driver.manage().timeouts().implicitlyWait(10, TimeUnit.SECONDS);
    String URL = "https://www.example.com/";

@Given("^I am logged in$")
public void i_am_logged_in() {
    driver.findElement(By.linkText("Login")).click();
    driver.findElement(By.id("username")).sendKeys("test");
    driver.findElement(By.id("password")).sendKeys("123");
    driver.findElement(By.xpath("/some/xpath")).click();
}

@When("^I go to this page$")
public void i_go_to_this_page(){
    driver.get(URL + "instance1");
}
代码在第一步登录时运行良好,但在下一步中,我可以看到我已注销

我能得到一些帮助吗

解决了

我所要做的就是在我的登录步骤中添加一个断言,以验证我是否已登录(谢谢Kyle!)

以下是我添加到登录步骤的代码:

String logoutButton = driver.findElement(By.linkText("Logout")).getText();
Assert.assertTrue(logoutButton.contains("Logout"));

如果您要关闭浏览器,或者在每个场景之后删除所有cookie,那么这就是问题所在。但您也需要稍微更改登录步骤,以确保在继续(或根本登录)之前以正确的身份登录,以确保所有场景都可以自行运行(无需登录即可运行)@KyleFairns声称我已登录到登录步骤中,这就成功了。谢谢!以下是我添加到登录步骤的代码:
String logoutButton=driver.findElement(By.linkText(“Logout”)).getText();Assert.assertTrue(logoutButton.contains(“Logout”))