我是黄瓜框架的新手。我使用带有黄瓜的java自动登录方案。以下是我的专题文件 -
以下是步骤定义文件 -
我想在所有场景之前执行setUp()
方法(在相同的场景下实现方法)和tearDown()
方法之后执行@Before
方法。我使用了黄瓜@After
和setUp()
挂钩(可能没有正确的方法)。
但我看到的结果与之前没有使用过的相同。它为所有四个场景逐个打开4个浏览器实例,然后执行它们。有没有办法只使用一个浏览器实例执行所有这些场景(对所有场景调用<!DOCTYPE html>
<html lang="en">
<head>
<title>AJAX Contact Form Demo</title>
<link rel="stylesheet" href="style.css">
</head>
<body>
<div id="page-wrapper">
<h1>AJAX Contact Form Demo</h1>
<div id="form-messages"></div>
<form id="main-contact-form" method="post" action="mailer.php">
<div class="field">
<label for="name">Name:</label>
<input type="text" class="form-control" id="name" name="name" required>
</div>
<div class="field">
<label for="email">Email:</label>
<input type="email" class="form-control" id="email" name="email" required>
</div>
<div class="field">
<label for="message">Message:</label>
<textarea id="message" class="form-control" name="message" required></textarea>
</div>
<div class="field">
<button type="submit" name="submit">Send</button>
</div>
</form>
</div>
<script src="jquery-2.1.0.min.js"></script>
<script type="text/javascript" src="pap.js"></script>
</body>
</html>
方法一次)?
答案 0 :(得分:1)
@Before
public void setup() {
if (driver == null) {
...//What you have
}
driver.manage().deleteAllCookies();
}
要开始不要在@After挂钩中关闭浏览器。
答案 1 :(得分:0)
您需要的是一个在场景之间共享的webdriver,并且在所有场景运行之前不会关闭。您可以通过将webdriver实例存储在静态变量中并向实例添加关闭挂钩来完成此操作。
看看这个给你这样一个驱动程序类 - SharedWebDriver
如果将它与DI容器(如PicoContainer)一起使用,则可以在构造函数中注入驱动程序。否则你可以创建一个实例。
此外,您应该查看ScenarioOutline以压缩多个登录方案。