我是 selenium webdriver 的新手,
在某些情况下,我的测试用例失败了,我想通过注释前面的代码从发生问题的同一位置(即不关闭浏览器)运行测试。如何在 selenium webdriver 中做到这一点。(就像从 QTP 中的步骤运行一样)
任何人都可以请指导我。
谢谢
我是 selenium webdriver 的新手,
在某些情况下,我的测试用例失败了,我想通过注释前面的代码从发生问题的同一位置(即不关闭浏览器)运行测试。如何在 selenium webdriver 中做到这一点。(就像从 QTP 中的步骤运行一样)
任何人都可以请指导我。
谢谢
为了重用浏览器,您不能在每次测试中都对其进行初始化,因此您需要使用单例模式,其中您将拥有一个唯一的 webdriver。
因此,您不想使用@before
and@after
子句来初始化和关闭该浏览器,而是要使用@beforeclass
and @afterclass
。然后,该类中的每个测试方法都将使用相同的浏览器,从上一个测试离开它的确切位置开始。
但这将发生在同一个测试周期中。据我所知,不可能使用以不同周期启动或手动打开的浏览器实例。
我知道有一种方法,但如果您决定并行运行相同的测试,这可能会导致一些问题。我建议你研究一下static
参数,看看它是否适合你。
当你开始你的第一次测试时,请按如下方式进行:
static WebDriver driver = new FirefoxDriver(); // Could be any Driver();
这样driver.someFunction();
,只要您不要求close()
或quit()
直到您到达最后一个测试,您调用的任何测试都将起作用。
解决方法在这里找到:https ://code.google.com/p/selenium/issues/detail?id=3927
WebDriver driver=new RemoteWebDriver(new URL("http://localhost:7055/hub" DesiredCapabilities.firefox());
driver.get("http://www.google.com");