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”))代码>