gpt4 book ai didi

java - 使用 Selenium、TestNG 和 Cucumber-JVM 时共享 WebDriver 实例

转载 作者:行者123 更新时间:2023-11-30 11:21:26 26 4
gpt4 key购买 nike

我正在尝试将 Cucumber-JVM 添加到我一直在从事的 TestNG 和 Selenium 项目中,我目前在该项目中通过类似这样的测试套件在网格上重新使用浏览器:

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE suite SYSTEM "http://testng.org/testng-1.0.dtd">
<suite name="Grid" thread-count="2" parallel="tests">
<test name="Firefox 27.0">
<parameter name="browser" value="Firefox"/>
<parameter name="browser_version" value="27.0"/>
<packages>
<package name="[Test package name]"/>
</packages>
</test>
<test name="IE 11">
<parameter name="browser" value="IE"/>
<parameter name="browser_version" value="11.0"/>
<packages>
<package name="[Test package name]"/>
</packages>
</test>
</suite>

包中的每个测试类然后在基类中的 setUp 方法中获取参数,如下所示:

@BeforeClass
@Parameters({"browser", "browser_version"})
public void setUp(String browser, String browser_version) throws MalformedURLException {
// Do the setup with WebDriver and assign to an object property
}

但是,我希望有一个在所有测试类之间共享的静态或注入(inject)类,以避免每次都重新初始化浏览器,这也应该让我在各个步骤定义文件之间共享 WebDriver 实例。有谁知道如何做到这一点?

最佳答案

您可以使用 Pico Container,它与 Cucumber-JVM 一起打包。

然后在测试类的构造函数中,您可以请求驱动程序:

public class TestClass {

WebDriver driver;

public TestClass(WebDriver driver) {
this.driver = driver;
}
}

PicoContainer 会自动将 webdriver 的实例传递给该类,任何其他具有类似构造函数的类也将获得相同的实例。

文档链接:http://picocontainer.codehaus.org/constructor-injection.html

关于java - 使用 Selenium、TestNG 和 Cucumber-JVM 时共享 WebDriver 实例,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22225073/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com