driver的创建区域问题

听了老师的直播课,老师说driver放在test里面是错误的应该放在page里面创建,关于这一点我有点困惑,个人感觉driver的创建放在BaseTest里面会更加的灵活,可以根据测试用例的不同动态的传入浏览器的参数,选择想要执行的浏览器,简易代码如下:

public class BaseTest {

	private static WebDriver driver;

	public static WebDriver getDriver() {
		return driver;
	}

	@BeforeAll
	public static void init(Browser browser){
		driver = DriverFactory.getDriver().getBrowser(browser.getBrowserName());
	}

	@AfterAll
	public static void tearDown(){
		driver.quit();
	}
}

github地址如下:

https://github.com/skytechfyh/selenium-wechat

如果你们有这种不同用例跑不同的浏览器的需求是可以这样设计的。这样的问题是会把driver对象引入到测试用例中,让关注业务的用例与底层实现产生了绑定。最好是放到主app或者主页面里,让他接受一个外部浏览器参数。这样你的basetest就可以传递浏览器名字又不会引来对driver的引用。

好的,那如果放在page里的话,是要放在BasePage里,还是说放在MainPage里就可以了