【发布时间】:2022-02-01 16:28:07
【问题描述】:
对于措辞不当的问题,我们深表歉意。我是测试自动化和 selenium / cucumber BDD 的新手,我正在尝试创建一个演示项目,该项目使用 google 运行一些数学表达式并验证结果。我想使用场景大纲,所以有..
Scenario Outline: Enter a maths expression
Given User enters the maths expression <expression>
When the user clicks the Search button
Then The result of <expectedResult> is returned
Examples:
| expression | expectedResult |
| 4+4 | 8 |
| 5^3 | 125 |
我有我的步骤来打开 chrome 浏览器并在 @Before 方法中导航到谷歌,比如 ..
@Before
public void setup() throws Throwable {
System.setProperty("webdriver.chrome.driver","C:\xxx\\chromedriver.exe");
this.driver = new ChromeDriver();
this.driver.manage().window().maximize();
this.driver.manage().timeouts().pageLoadTimeout(60, TimeUnit.SECONDS);
this.driver.manage().timeouts().setScriptTimeout(60, TimeUnit.SECONDS);
driver.get("https://google.com");
Thread.sleep(2000);
//agrees to the terms and conditions
driver.findElement(By.xpath("//*[@id=\"L2AGLb\"]/div")).click();
}
当我运行我的功能时,它可以工作,但是对于场景大纲中的每个示例,它都会运行之前的步骤(这似乎是在线阅读的预期行为),即浏览器会为每个示例打开和关闭。
理想情况下,我希望浏览器在开始时打开一次,运行所有示例,然后在结束时关闭。是否有适当的方法注释可用于实现此目的。我试图在网上找到答案,但没有任何运气。一篇文章提到了使用@BeforeSuite,但我只是在尝试使用它时出错。我也尝试使用 @Background 注释,但这与它似乎适用于每个场景示例一样。
任何帮助将不胜感激。
【问题讨论】:
-
我的回答清楚吗?这就是你要找的东西吗?