在
Selenium 2WebDriver中,您可以调用
driver = new FirefoxDriver();
会产生一个浏览器,并且该浏览器将在测试期间保持打开状态,
或者您可以选择用关闭它
driver.Quit()。
其实我想做什么?
我喜欢在两次测试之间关闭浏览器窗口,以使我知道测试不会 “弄脏”
存储的会话数据,因为会话数据可能会影响测试的运行方式,但是我可以看到一些针对性测试的价值,在此我可以尝试一些不同的场景,同时保持相同的会话进行。
对于代码级别:您可以检查它是否为null。如果为null,则调用浏览器以提供另一个。
public WebDriver getDriverBrowser() throws IOException {if (driverBrowser == null) { String sBrowser = PropertyLoader.loadProperty("browser"); driverBrowser = getBrowser(sBrowser); driverBrowser .manage() .timeouts() .implicitlyWait( Integer.valueOf(PropertyLoader .loadProperty("implicit_timeout_sec")), TimeUnit.SECONDS); driverBrowser.manage().window().maximize();}return driverBrowser;}或者,您可以使用xml配置将某些测试用例用作类级别或特定于测试的测试。使用TestNG,可以指定要运行的测试(
TestNG will generatean XML file of all of the tests that fail, so when you run it, it will onlyexecute the failed tests)。
问题-1:
我的意思是我不想再次登录以继续测试,我不介意它是否会打开另一个窗口,实际上,正如您所说的那样,它更可靠,但如果我必须再次登录则无济于事。
如果您不想登录,那么在每个测试用例中,都需要一个基本的起点。结束任何测试用例后,它将转到基准位置,下一个测试用例将从基准开始
问题-2: 如何实现基本起点?
它是由你决定。首先,您必须分析测试用例,然后必须选择哪个点可以作为所有或某些测试用例集的起点。然后就可以做到。
有关更多:
- https://github.com/seleniumhq/selenium-google-pre-issue-archive/issues/3927
- https://sqa.stackexchange.com/questions/1988/selenium-reuse-existing-browser-session-instead-of-opening-new-windows



