我是黄瓜测试以及硒测试的新手。请帮我在单个浏览器中运行所有黄瓜测试用例。至于现在我在每个黄瓜step_def中为特征文件创建新的WebDriver对象。
答案 0 :(得分:2)
解决方法是,在step_def中使用/传递相同的Web Driver对象。从我的问题我假设,你有多个Step Def文件,如果故事很小并且相关,则将它们全部放在一个step_def文件中,并且只有一个Web驱动程序对象。如果不是这种情况,请使用在配置加载器中全局声明的预定义Driver对象调用每个step_def。
答案 1 :(得分:1)
使用一个浏览器运行所有测试用例使用单例设计模式,即使用私有构造函数创建类,并使用私有访问说明符定义类实例变量。在该类中创建一个方法并检查该类是否为null,如果是是否为null而不是创建一个新的类实例并将该实例返回给调用方法。例如,我发布了我的代码。
class OpenBrowserHelp {
private WebDriver driver;
private static OpenBrowserHelp browserHelp;
private OpenBrowserHelp() {
this.driver = new FirefoxDriver()
driver.manage().timeouts().implicitlyWait(30, TimeUnit.SECONDS);
driver.manage().window().maximize();
}
public static OpenBrowserHelp getOpenBrowserHelp() {
if (null == browserHelp) {
browserHelp = new OpenBrowserHelp();
}
return browserHelp;
}
WebDriver getDriver() {
return driver
}
void setDriver(WebDriver driver) {
this.driver = driver
}
public void printSingleton() {
System.out.println("Inside print Singleton");
}
现在,您需要创建浏览器实例,而不是使用
WebDriver driver = OpenBrowserHelp.getOpenBrowserHelp().getDriver();